Перейти к содержанию
Fire Monkey от А до Я
  • 0

[TidHTTP] Как получить ответ от веб-сервера в нужной кодировке?


mrseagull

Вопрос

Используя IdHTTP загружаю текстовый файл из интернета.

UnicodeString URL = "http://seatr.do.am/AntiCafe48/30.03.2015";
String str;
str = IdHTTP1->Get(URL);
Form4->Memo1->Lines->Add(str);

В итоге вместо кириллицы абра кадабра. Что можно сделать?

post-986-0-18251300-1427833399.png

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Добрый вечер,

 

У TidHttp есть перегруженный метод получения ответа с возможностью указания потока. 

 

Сервер по указанному адресу присылает ответ в ANSI кодировке. А у функция Get возвращает UnicodeString в С++ Builder. Поэтому решение - это представить полученный ответ в ANSI кодировке:

 

C++:

TStringStream *SS = new TStringStream(L"", TEncoding::ANSI, false);
try
{
	UnicodeString URL = "http://seatr.do.am/AntiCafe48/30.03.2015";
	IdHTTP1->Get(URL, SS);
	ShowMessage("Response: " + SS->DataString);
}
 __finally
{
	SS->Free();
}

Delphi:

var
  SS: TStringStream;
begin
  SS := TStringStream.Create('', TEncoding.ANSI);
  try
    IdHTTP1.Get('http://seatr.do.am/AntiCafe48/30.03.2015', SS);
    ShowMessage('Response: ' + SS.DataString);
  finally
    SS.Free;
  end;
end;

Результат:

post-1-0-09299600-1427837857.png

Изменено пользователем Brovin Yaroslav
Добавлен код для C++ Builder
Ссылка на комментарий
  • 0
  • Администраторы

Мой код компилируется на все платформы. Попробуйте вначале собрать пример с моим кодом, сделав полный копипаст.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...