Kodowanie znaków TIdHTTP odpowiedzi POST

Podejmij następującą sytuację:

procedure Test;

var
 Response : String;

begin
 Response := IdHttp.Post(MyUrL, AStream);
 DoSomethingWith(Response);
end;

Teraz serwer zwraca dane w UTF-8. Załóżmy, że zwróci mi trochę XML UTF-8 zawierającego znaké. Jeśli użyję zmiennej Response, nie zawiera ona tego znaku, ale jest to wariant UTF-8 (# C3 # A9), więc Indy nie dekodował?

Teraz wiem, jak rozwiązać ten problem:

procedure Test;

var
 Response : String;

begin
 Response := UTF8ToString(IdHttp.Post(MyUrL, AStream));
 DoSomethingWith(Response);
end;

Jedno zastrzeżenie z tym rozwiązaniem: Delphi wywołuje ostrzeżenie W1058 (Niejawny rzut łańcuchowy z potencjalną utratą danych z „string” na „RawByteString”)

Moje pytanie: czy jest to właściwy sposób na rozwiązanie tego problemu, czy mogę polecić TIdHTTP wykonanie konwersji na UnicodeString dla mnie?

questionAnswers(2)

yourAnswerToTheQuestion