Как задать определенную кодировку для WebBrowserа, чтобы он
работал только с ней при просмотре страниц?( к примеру Unicode(UTF-8))
И еще как задать кодировку отображения и записи в Memo
Задание кодировки в WebBrowsere
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Кодировку надо указывать в самих страницах.
Посмотрите методы из интерфейса IHTMLDocument2 (см Mshtml.pas в C:\Program Files\Borland\Delphi5\Source\Internet)
Возможно что-то типа....
... но я не уверен.
В TMemo никак. Только перекодировать в Win1251.
Можно еще использовать шрифт, в котором символы расположены в соответствии с нужной страницей.
Посмотрите методы из интерфейса IHTMLDocument2 (см Mshtml.pas в C:\Program Files\Borland\Delphi5\Source\Internet)
Возможно что-то типа....
Код: Выделить всё
var
doc: IHTMLDocument2;
begin
doc:=WebBrowser1.Document;
doc.Set_defaultCharset(...)
end;
В TMemo никак. Только перекодировать в Win1251.
Можно еще использовать шрифт, в котором символы расположены в соответствии с нужной страницей.
Не совсем верное решение. Дело в том, что по протоколу HTTP/1.1 сервер может отослать документ именно в той кодировке, которую ожидает браузер. Т.е. документ на сервере может храниться в KOI-8, а клиенту (то бишь браузеру) передавать его в Windows-1251, осуществляя перекодировку на лету. Если при этом сервер забудет в заголовках HTTP ответа указать кодировку (случается при неверной настройке сервера довольно часто), то браузер будет введён в заблуждение указанием кодировки KOI8-r. Впрочем, сей факт слабо утешает - браузер может направляться на неподконтрольные веб-сервера.Кодировку надо указывать в самих страницах.
На сколько я помню, это не работает. И, если я правильно понимаю, вот по какой причине: дело в том, что при создании документа используется значение дефолтной кодовой страницы из настроек IE. А от TWebBrowser'а мы документ получаем только после того, как он распарсен с уже установленным defaultCharset. Если посмотреть на поведение IE при смене кодировки, то видно, что он по новой парсит документ. Возможно, поможет такое решение: создать новый пустой документ, указать ему нужную дефолтную кодировку и заставить его распарсить HTML предварительно сохранённый из предыдущего документа. Методы на вскидку не вспомню, MSDN'a под рукой нет, а в Google искать лень. Что-то вроде loadfromstring или parse...doc.Set_defaultCharset
Даже самый дурацкий замысел можно воплотить мастерски
Спасибо за мучение мозга. К сожалению, задать только 1 конкретную кодировку так и не получилось,
оставим это на совести разработчиков Delphi.
Да, к вопросу,,, уже неделю юзаю Delphi 2005(AE) - Просто супер, дизайн просто мега удобный,
Дофига новых возможностей, более ли менее нормальный help с несколькими языками,
а еще обещают в скором времени возможность работы и с Cи до кучи!!!
оставим это на совести разработчиков Delphi.
Да, к вопросу,,, уже неделю юзаю Delphi 2005(AE) - Просто супер, дизайн просто мега удобный,
Дофига новых возможностей, более ли менее нормальный help с несколькими языками,
а еще обещают в скором времени возможность работы и с Cи до кучи!!!
[syntax=Delphi] [/syntax]