TIdHTTP-Zeichencodierung der POST-Antwort
Nehmen Sie folgende Situation:
procedure Test;
var
Response : String;
begin
Response := IdHttp.Post(MyUrL, AStream);
DoSomethingWith(Response);
end;
Jetzt gibt der Webserver mir Daten in UTF-8 zurück. Angenommen, es gibt UTF-8-XML mit dem Zeichen zurücké. Wenn ich die Variable Response verwende, enthält sie kein Zeichen, sondern eine UTF-8-Variante (# C3 # A9). Hat Indy also keine Dekodierung durchgeführt?
Jetzt weiß ich, wie ich dieses Problem lösen kann:
procedure Test;
var
Response : String;
begin
Response := UTF8ToString(IdHttp.Post(MyUrL, AStream));
DoSomethingWith(Response);
end;
Eine Einschränkung bei dieser Lösung: Delphi gibt die Warnung W1058 aus (Implizite Zeichenfolge mit potenziellem Datenverlust von 'string' zu 'RawByteString').
Meine Frage: Ist dies der richtige Weg, um mit diesem Problem umzugehen, oder kann ich TIdHTTP anweisen, die Konvertierung nach UnicodeString für mich durchzuführen?