Название: Кодировка html Отправлено: sonicCat от Февраль 02, 2008, 21:40 Если открыть линк оперой или Explorer-ом
http://www.translate.google.com/translate_dict?q=telephone&hl=en&langpair=en%7Cru то они паказывают что файл в UТF-8 ( charset=UTF-8 ) Если я загружаю фай с помощью Qt: http("www.translate.google.com",80) - конструктор http.get( "/translate_dict?q=man&hl=en&langpair=en%7Cru" , &buffer ); то в буфере у меня charset=ISO-8859-1 и вместо русских букв ре_цифры; видать google берет откудато кауюто информацию :) по которой решает что присылать Может кто подскажет что именно нужно добавить. Название: Re: Кодировка html Отправлено: DpoHro от Февраль 03, 2008, 01:40 Может кто подскажет что именно нужно добавить. Если сервер от клиента что и берет, то через хидеры, туда и нужно добавлять...http://www.w3.org/Protocols/rfc2616/rfc2616.html +QHttpRequestHeader Точного решения не знаю, самому интересно... Название: Re: Кодировка html Отправлено: sonicCat от Февраль 03, 2008, 11:41 фи, в моем случае оказалось все совсем просто: нужно было изменить hl=en на hl=ru
но при этом я получаю charset=windows-1251, в винде все отабражается нормально а вот как в UNIXах незнаю. Также пробовал следующее: Код: telnet www.translate.google.com 80 получал charset=ISO-8859-1 а если так: Код: telnet www.translate.google.com 80 то получал charset=windows-1251 как Опера получает UТF-8 так и не понял т.к. если я добавляю Accept-Charset: utf-8 то это не меняет результата Цитировать http://www.w3.org/Protocols/rfc2616/rfc2616.html Спасибо за ссылку, в загловках по ней разбиралсяНазвание: Re: Кодировка html Отправлено: Sokoloff от Февраль 04, 2008, 10:59 Опера берет это из HTML и HTTP заголовков. Открой страницу и посмотри в исходном HTML коде первую строку:
Код: <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> Есть еще HTTP заголовок Content-Type. В идеале они должны указывать на одинаковые кодировки, но так бывает не всегда. Кто важнее точно не знаю (см. например http://apache.lexa.ru/meta-http.html). А так почитай http://www2.stack.ru/~julia/HTML4/charset.html, ну и гугл в помощь. Название: Re: Кодировка html Отправлено: Sokoloff от Февраль 04, 2008, 11:22 Вот специально посмотрел, HTTP заголовоки выглядят так:
Код: HTTP/1.0 200 OK Т.е. в HTTP заголовке указан один charset, а в HTM-е другой, в данном случае HTML-ный правильнее. Название: Re: Кодировка html Отправлено: sonicCat от Февраль 04, 2008, 12:20 А дело в том что у оперы в HTML
Код: <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> А у меня ( когда загружаю страницу через telnet или через Qt ) Код: <html><head><meta http-equiv="content-type" content="text/html; charset=windows-1251"> т.е. приходят разные html страницы может опера уже сама переводит в UTF-8 Название: Re: Кодировка html Отправлено: Sokoloff от Февраль 04, 2008, 13:47 Посмотри с помощью Ethreal ( http://www.ethereal.com ) что передает опера и твоя программа.
IMHO дело в следующих строках в HTTP запросе: Код: Accept-Language: ru-RU,ru; |