Консультация № 163505
28.03.2009, 23:30
0.00 руб.
0 3 1
Здравствуйте ув. эксперты!

Как исправить проблему отображения русских символов получаемых idHttp.get в Delphi 2009
В 2007 все работает нормально.

Обсуждение

Неизвестный
30.03.2009, 09:55
общий
Приведите фрагмент кода - как Вы этот idHTTP.get используете
давно
Студент
15716
139
30.03.2009, 10:36
общий
var
s : string;
begin
s:= idHTTP1.get(link);
end;


Данные наполучаемой странице в кодировке Win1251
Неизвестный
30.03.2009, 12:05
общий
это ответ
Здравствуйте, Александр Романов [Alexo]!

К сожалению, Indy не знает о том, что есть кодировка windows-1251. И полученный поток передает без преобразования кодировки в строку - в итоге получается строка с кодировкой Unicode, но данные в ней - windows-1251.

Решение - обрабатывать самому:

Код:
var
M: TmemoryStream;
S: AnsiString;
begin
M := TMemoryStream.Create;
IdHTTP1.Get('http://rusfaq.ru/info/Question/163505', M);
SetLength(S, M.Size);
CopyMemory(Pointer(S), M.Memory, M.Size);
Memo1.Lines.Text := S;
M.Destroy;
end;
Форма ответа