Russian Qt Forum

Qt => Работа с сетью => Тема начата: max1983 от Октября 30, 2009, 19:58



Название: Решено Кодировка полученных данных QHttp
Отправлено: max1983 от Октября 30, 2009, 19:58
Кодировка полученных данных QHttp.
Проблема как все догадались с русским текстом!
Данные получаю с Web страницы. html

Цитировать
QString text;
text =QString::fromUtf8( http->readAll() );
или
 text = text.fromLocal8Bit(http->readAll());
так не помогает.

Хелпп.. дурацкая проблема.


Название: Re: Кодировка полученных данных QHttp
Отправлено: BRE от Октября 30, 2009, 20:29
Кодировка полученных данных QHttp.
Проблема как все догадались с русским текстом!
Данные получаю с Web страницы. html
А ты уверен что страница в кодировке Utf8?
Может cp1251 или koi8r?


Название: Re: Кодировка полученных данных QHttp
Отправлено: max1983 от Октября 30, 2009, 21:57
Цитировать
А ты уверен что страница в кодировке Utf8?
Может cp1251 или koi8r?
Нет конечно!
Как декодировать правильно?


Название: Re: Кодировка полученных данных QHttp
Отправлено: BRE от Октября 30, 2009, 22:06
Нет конечно!
Как декодировать правильно?
Проанализировать заголовок ответа на предмет:
Content-Type: ...; charset=...


Название: Re: Кодировка полученных данных QHttp
Отправлено: max1983 от Октября 30, 2009, 22:36

Цитировать
Проанализировать заголовок ответа на предмет:
Content-Type: ...; charset=...
Предположим уже проагналировал..
как сам текст конвертнуть чтоб в виджетах отображался номально?


Название: Re: Кодировка полученных данных QHttp
Отправлено: BRE от Октября 30, 2009, 22:40
Предположим уже проагналировал..
как сам текст конвертнуть чтоб в виджетах отображался номально?
На помощь нам приходит чудо-класс QTextCodec.  ;)


Название: Re: Кодировка полученных данных QHttp
Отправлено: zenden от Октября 30, 2009, 22:57
А названия кодировок в ответе от сервера и используемые в QTextCodec совпадают?

к тому же не все сервера пишут кодировку в заголовке...


Название: Re: Кодировка полученных данных QHttp
Отправлено: BRE от Октября 30, 2009, 23:07
А названия кодировок в ответе от сервера и используемые в QTextCodec совпадают?
Не уверен, нужно проверять.

к тому же не все сервера пишут кодировку в заголовке...
Вот при просмотре документов с таких серверов, мы частенько получаем "кашу" на экране и лезем в меню ручной установки кодировки....  :)


Название: Re: Кодировка полученных данных QHttp
Отправлено: max1983 от Октября 31, 2009, 23:50
Спасибо решено!
Код:
QByteArray encodedString;
encodedString.append(http->readAll());
QTextCodec *codec = QTextCodec::codecForName("windows-1251");
QString HTML = codec->toUnicode(encodedString);