TIdHTTP и кодировка сайта

Модератор: Модераторы

Ответить
ViruZ
постоялец
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина
Контактная информация:

TIdHTTP и кодировка сайта

Сообщение ViruZ »

Подскажите, пожалуйста, как методом Idhttp.Get(url) получить сайт в правильной кодировке? Уже второй день мучаюсь, много гуглил, но ничего толком не нашел. причем тот же код в Delphi7 грузит страницу корректно. Результат записывается в Memo. Сайт в кодировке UTF-8.
Windows XP SP3/Lazarus SVN/FPC 2.6.1
ViruZ
постоялец
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина
Контактная информация:

Сообщение ViruZ »

Добавлю дополнительные сведения.
В исходном коде сайта стоит кодировка

Код: Выделить всё

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Для загрузки сайта использую следующий фрагмент кода:

Код: Выделить всё

 IdHTTP1.HandleRedirects:=true;
 Memo1.Clear;
 Memo1.Text:=idhttp1.Get(myurl);

Вместо кириллицы вижу знаки вопроса.
Кириллиц необходима для поиска ключевых слов на сайте для загрузки информции.
alex208210
постоялец
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Сообщение alex208210 »

адрес сайта
ViruZ
постоялец
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина
Контактная информация:

Сообщение ViruZ »

alex208210 писал(а):адрес сайта

Скинул в личку
alex208210
постоялец
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Сообщение alex208210 »

у меня сайт скачивается в правильной кодировке. (lazarus 0.9.30 fpc 2.4.2)

Если ничего не получается то подключай модуль lconvencoding и грузи сайт этим способами:
utf8toansi(idhttp1.Get(url));
ansitoutf8(idhttp1.Get(url));
koi8toutf8(idhttp1.Get(url));
utf8tokoi8(idhttp1.Get(url));
ViruZ
постоялец
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина
Контактная информация:

Сообщение ViruZ »

Спасибо! Буду пробовать.

Добавлено спустя 20 часов 55 минут 47 секунд:
Решил перейти с Indy на Synapse - теперь нормально грузит сайт!
Использовал следующий код:

Код: Выделить всё

mysite:=THTTPSend.Create;
 if mysite.HTTPMethod('GET',mysiteurl) then begin
   Memo1.Clear;
   Memo1.Lines.LoadFromStream(mysite.Document);
 end else ShowMessage('Somesing wrong! '+IntToStr(mysite.ResultCode))
Ответить