Рейтинг@Mail.ru
(Delphi) Знаки вопросов вместо русских букв/символов | Программирование на Delphi и C#
Заметка

(Delphi) Знаки вопросов вместо русских букв/символов

Все, кто парсил русские сайты, рано или поздно сталкивался с такой ситуацией, когда вместо русских символов в исходном коде только знаки вопроса.

В данной ситуации Вам не помогут такие функции как: Utf8toAnsiAnsiToUtf8Utf8Encode, Utf8Decode !

Что бы исправить данную ситуацию Вам нужно использовать TStringStream вместо TStringList.

Например:

var
  input: TStringStream;
  data: string;
begin
  input:=TStringStream.Create(data);
  IdHTTP1.Get('http://mail.ru', input);
  Memo1.Lines.Add(input.DataString);
end;

Если после данного метода у вас возвращается «кракозябры» (Почта), то следует сверху наложить Utf8toAnsi

В итоге получится следующий код:

var
  input: TStringStream;
  data: string;
begin
  input:=TStringStream.Create(data);
  IdHTTP1.Get('http://mail.ru', input);
  Memo1.Lines.Add(Utf8ToAnsi(input.DataString));
end;

После всего Вы получите русские буквы в исходном коде страницы (см. скриншот).

Знаки вопроса вместо русских букв

Оставить комментарий   Вы должны быть авторизованы, что бы оставить комментарий.