Codificação de caracteres TIdHTTP da resposta do POST
Tome a seguinte situação:
procedure Test;
var
Response : String;
begin
Response := IdHttp.Post(MyUrL, AStream);
DoSomethingWith(Response);
end;
Agora o servidor da web retorna dados em UTF-8. Suponha que me retorne algum XML UTF-8 contendo o caractereé. Se eu usar a variável Response, ela não contém este caractere, mas é a variante UTF-8 (# C3 # A9), então a Indy não decodificou?
Agora eu sei como resolver esse problema:
procedure Test;
var
Response : String;
begin
Response := UTF8ToString(IdHttp.Post(MyUrL, AStream));
DoSomethingWith(Response);
end;
Uma ressalva com esta solução: O Delphi gera um aviso W1058 (Encadeamento implícito de string com possível perda de dados de 'string' para 'RawByteString')
Minha pergunta: esta é a maneira correta de lidar com esse problema ou posso instruir o TIdHTTP para fazer a conversão para UnicodeString para mim?