Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2009, 21:03   #1
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
Вопрос Проблема с кодировкой Indy 10

Отправляю пост запрос, сохраняю результат в мемо, загружаю страницу в webbrowser. В результате текст на страничке отображаеться в непонятной кодировке....
делаю это на делфи 2009, на который перешол с делфи 7 (где проблем с кодировкой небыло...)
Что делать?
Заранее спасибо)
Joe_Tribbiani вне форума Ответить с цитированием
Старый 06.03.2009, 21:19   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

выяснить какая кодировка у текста, выставить эту кодировку в memo как вариант.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.03.2009, 21:28   #3
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

хм... да, но как выяснить кодировку?
И почему в delphi 7 работает, а здесь нет...?
Joe_Tribbiani вне форума Ответить с цитированием
Старый 06.03.2009, 22:03   #4
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

по исходному коду:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Viteef вне форума Ответить с цитированием
Старый 06.03.2009, 23:09   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Потому что принцип работы с кодировками в D2009 в Indy совершенно по другому реализован
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.03.2009, 11:57   #6
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Цитата:
по исходному коду:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Эт я знаю, но всё-равно в мемо отображаються другая кодировка, какую бы я не ставил.
Т.е дело не в самой странице а в том как idhttp её обрабатывает
Joe_Tribbiani вне форума Ответить с цитированием
Старый 07.03.2009, 13:14   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

IdHttp использует Unicode в возвращаемой строке, автоопределяя кодировку удаленного содержимого. Использовать строки для получения страниц сейчас в Indy совсем не рекомендуется. в Слудующих версиях Indy разработчики планируются пометить этот перегруженный метод depricated. Используйте потоки для получения содержимого, они не привязаны к кодировке. или же сейчас при загрузке в memo используйте сразу ковертирование кодировок, благо этот функционал в D2009 представлен очень богато. Пдробности выложу еще раз в вложении, хотя уже писал об этом в какой- то теме.
Вложения
Тип файла: pdf Delphi_and_Unicode.pdf (154.8 Кб, 72 просмотров)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.03.2009, 13:59   #8
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Цитата:
Используйте потоки для получения содержимого, они не привязаны к кодировке.
Спс, тогда подскажите пожалуйста как получить результат пост запроса в поток...

Последний раз редактировалось Joe_Tribbiani; 07.03.2009 в 18:06.
Joe_Tribbiani вне форума Ответить с цитированием
Старый 07.03.2009, 19:44   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
var
s:tmemorystream;
....
begin
s:=tmemorystream.create;
try
idhttp1.post('url',s);
....
finally
s.free;
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.03.2009, 12:53   #10
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

А если я передаю параметры?
Вот :
Код:
form1.idhttp1.post('http:...',loginlist)
где loginlist набор параметров

А всё я понял, тут можна задавать 3-й параметр.
Код:
form1.idhttp1.post('http://...',loginlist,stream);
Но когда я загружаю этот поток в Memo Он оказываеться пустой...
Что делать?
А всё)) разобрался

Код:
 stream.SaveToFile('2.html');
нужно просто сохранить из самого потока, дальше загружаю в webbrowser и всё норм отображаеться)

Спс, Квэнди !

Последний раз редактировалось Joe_Tribbiani; 08.03.2009 в 13:18.
Joe_Tribbiani вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой GaJIbI4 Помощь студентам 7 05.03.2009 15:42
Проблема с кодировкой... SynonymMixer Общие вопросы Delphi 6 28.01.2009 15:40
Проблема с кодировкой feniks65 Паскаль, Turbo Pascal, PascalABC.NET 13 06.01.2009 11:00
Проблема с кодировкой в MEMO hacknet Общие вопросы Delphi 29 14.11.2008 19:15
Дельфи 8. Проблема с кодировкой. Venor Общие вопросы Delphi 1 10.06.2008 20:44