Кодировка символов TIdHTTP ответа POST
Возьмите следующую ситуацию:
procedure Test;
var
Response : String;
begin
Response := IdHttp.Post(MyUrL, AStream);
DoSomethingWith(Response);
end;
Теперь веб-сервер возвращает мне данные в UTF-8. Предположим, он возвращает мне какой-то UTF-8 XML, содержащий символé, Если я использую переменную Response, она не содержит этот символ, но это вариант UTF-8 (# C3 # A9), поэтому Indy не декодировал?
Теперь я знаю, как решить эту проблему:
procedure Test;
var
Response : String;
begin
Response := UTF8ToString(IdHttp.Post(MyUrL, AStream));
DoSomethingWith(Response);
end;
Одно предупреждение с этим решением: Delphi выдает предупреждение W1058 (неявное приведение строки с потенциальной потерей данных из 'string' в 'RawByteString')
Мой вопрос: это правильный способ решения этой проблемы, или я могу дать TIdHTTP команду выполнить преобразование в UnicodeString для меня?