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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2008, 16:44   #1
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию Про кодировку...

Использую Дельфу 2009. Проблема состоит вот в чем:
Получаю страницу компонентом Идхттп, потом ищу нужный текст и вставляю его например в листбокс, но вместо русского слова в нем высвечивается текст типа Äèìêà...Что єто за кодировка и как этот текст кодировать в нормальный читабельный текст?
Lich вне форума Ответить с цитированием
Старый 28.12.2008, 19:32   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

попробуйте указать encoding
https://forums.codegear.com/thread.j...=8925&tstart=0
вот таким образом мне помогали с немного другой, но аналогичной по направленности проблеме.
Идея такова: Indy 10.2.5, используемые в delphi 2009 при запросе get в idhttp автоматически определяют кодировку загружаемой страницы, если же кодировку опознать не получилось, используется utf-8 , соответственно вы можете проверить какая кодировка стоит у страницы, которую вы загружаете (строка примерно выглядящая так: <meta http-equiv="content-type" content="text/html; charset=windows-1251" />) и соответственно переконвертируйте полученный результат в необходимую вам кодировку или одним из общепринятый алгоритмов перекодирования ( их куча), или же воспользуйтесь богатым функционалом Indy компонента Tencoding
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 28.12.2008 в 20:48.
Квэнди вне форума Ответить с цитированием
Старый 28.12.2008, 22:00   #3
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
попробуйте указать encoding
https://forums.codegear.com/thread.j...=8925&tstart=0
вот таким образом мне помогали с немного другой, но аналогичной по направленности проблеме.
Идея такова: Indy 10.2.5, используемые в delphi 2009 при запросе get в idhttp автоматически определяют кодировку загружаемой страницы, если же кодировку опознать не получилось, используется utf-8 , соответственно вы можете проверить какая кодировка стоит у страницы, которую вы загружаете (строка примерно выглядящая так: <meta http-equiv="content-type" content="text/html; charset=windows-1251" />) и соответственно переконвертируйте полученный результат в необходимую вам кодировку или одним из общепринятый алгоритмов перекодирования ( их куча), или же воспользуйтесь богатым функционалом Indy компонента Tencoding
Спасибо конечно, но это все не помогало, пока я данные получаемые методом гет или пост загнал в мемористрим, потом указал мемористрим.позиция = 0 и тогда все нормально отображается...Если бы кто-нибудь сказал почему так...В дельфи 7 версии там просто я методом получал и сразу же в мемо отображал...Теперь проблема которая не менее важнее этой...Получаю текст : Блабла&?#44блабла&?#44 (Без символа ?) где , это юникодовский вроде код, но он не отображается правильно в мемо (в хтмл он показуется)...
Если в сделать так:
s:=#44;
memo1.lines.add(s);
то отобразится нужные символ. Так вот проблема в том, что из запроса я могу выдернуть эти все коды, но вот вставить их, что бы они отображались как нужно не получается...Может кто знает как это сделать???

Последний раз редактировалось Lich; 28.12.2008 в 22:02.
Lich вне форума Ответить с цитированием
Старый 28.12.2008, 22:35   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

в delphi 2009 при работе с indy настоятельно рекомендую вообще отказаться от использования прямых типов данных string и ansistring , используй только IO потокипорожденные от tstream. Это обусловлено тем, что все простые типы строковых даных в D2009 все- таки сильно заявязаны на кодировке (имеется ввиду не codepage а именно размерность ) в отличие от IO stream. Насчет символов делай лучше stringreplace искомых символов на их коды.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 28.12.2008 в 22:37.
Квэнди вне форума Ответить с цитированием
Старый 28.12.2008, 22:47   #5
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
в delphi 2009 при работе с indy настоятельно рекомендую вообще отказаться от использования прямых типов данных string и ansistring , используй только IO потокипорожденные от tstream. Это обусловлено тем, что все простые типы строковых даных в D2009 все- таки сильно заявязаны на кодировке (имеется ввиду не codepage а именно размерность ) в отличие от IO stream. Насчет символов делай лучше stringreplace искомых символов на их коды.
если не сложно , приведи пример как можно реализовать вставку &#!9829; (без знака !) в мемо или листбокс, что бы там отобразился символ ♥...
А про стрингреплейс я так понял нужно вручную записывать символ на код, а ведь этих кодов ой-йо-йой...

Последний раз редактировалось Lich; 28.12.2008 в 22:56.
Lich вне форума Ответить с цитированием
Старый 29.12.2008, 10:32   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну это лучше уже отдельную тему в общих вопросах
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
Может надо реализовать кодировку???Подскажите хоть что-нибудь Fellics{новичок} Помощь студентам 4 18.06.2008 18:19
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24
Про PopupMenu Михаил Юрьевич Общие вопросы Delphi 2 23.02.2008 23:38
подскажите кодировку для казахстана. Sjava HTML и CSS 4 17.07.2007 15:08