Delphi Знаки Вопросов Вместо Русских Букв/символов

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала

Sascha

Команда форума
Администратор
Ofline
Знаки вопросов вместо русских букв/символов

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

В данной ситуации Вам не помогут такие функции как: Utf8toAnsi, AnsiToUtf8, Utf8Encode, 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;

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

clip_image001.webp
 
Назад
Сверху Снизу