Название: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 09:13 получаю строчку из Интернета если в кодировке UTF-8 то проблем нету,а если в WIN1251 выдает крякозяблики,подскажите как поменять кодировку получаемой страничке
QString fan =(QString)Reply->readAll(); Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: Old от Апрель 19, 2014, 09:17 получаю строчку из Интернета если в кодировке UTF-8 то проблем нету,а если в WIN1251 выдает крякозяблики,подскажите как поменять кодировку получаемой страничке class QTextCodecНазвание: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 09:52 получаю строчку из Интернета если в кодировке UTF-8 то проблем нету,а если в WIN1251 выдает крякозяблики,подскажите как поменять кодировку получаемой страничке class QTextCodecНазвание: Re: Кодировка из Windows1251 в UTF-8 Отправлено: Bepec от Апрель 19, 2014, 09:53 class QTextCodec
Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: Old от Апрель 19, 2014, 09:53 А если я работаю в консоле? А какая разница? Это класс для конвертации строк из/в разные кодировки.Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 10:22 Спасибо большое ребят
Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 10:26 Еще вопрос после перекодировки из win в utf мои данные будут храниться в qstring?или если нет то как их туда перегнать
Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 10:34 Еще вопрос после перекодировки из win в utf мои данные будут храниться в qstring?или если нет то как их туда перегнать QString string = ...; // некоторый текст в UnicodeQTextCodec *codec = QTextCodec::codecForName("ISO 8859-5"); QByteArray encodedString = codec->fromUnicode(string); А можно в Qstring оставить? Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: OKTA от Апрель 19, 2014, 13:14 QString::QString ( const QByteArray & ba )
Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 13:20 QString::QString ( const QByteArray & ba ) а можно поподробнее)Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 13:24 а то когда беру данные в QString мне пишет
"<?xml version="1.0" encoding="windows-1251"?><rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">\n<channel>\n<image>\n<url>http://www.adygtv.ru/logo.jpg</url>\n<title>���� "������"</title>\n<link>http://www.adygtv.ru/</link>\n</image>\n<title>������� </title>\n<link>http://www.adygtv.ru</link>\n<description></description>\n<lastBuildDate>Sat, 19 Apr 2014 14:06:06 +0400</lastBuildDate>\n<ttl>60</ttl>\n<item>\n\t<title>� ������ �������� ��������� ������ ���������..." а когда переконвертировать в QByteArray "<?xml version="1.0" encoding="windows-1251"?><rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">\n<channel>\n<image>\n<url>http://www.adygtv.ru/logo.jpg</url>\n<title>���� "������"</title>\n<link>http://www.adygtv.ru/</link>\n</image>\n<title>������� </title>\n<link>http://www.adygtv.ru</link>\n<description></description>\n<lastBuildDate>Sat, 19 Apr 2014 14:06:06 +0400</lastBuildDate>\n<ttl>60</ttl>\n<item>\n\t<title>� ��..." Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: OKTA от Апрель 19, 2014, 13:31 А вообще зачем в QString вставлять и при чем здесь "ISO 8859-5", если у тебя 1251?
Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: GamBitiK от Апрель 19, 2014, 15:14 А вообще зачем в QString вставлять и при чем здесь "ISO 8859-5", если у тебя 1251? ISO 8859-5 это в примере было,просто скопировал!а в QString что бы распарсиь,разложить по полочкам Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: OKTA от Апрель 21, 2014, 09:07 Не знаю, как в 5, но в 4
Код: QTextCodec *codec = QTextCodec::codecForName("ISO 8859-5"); Алгоритм действий простой 1. Читаешь строку из внешнего источника в QByteArray 2. Зная кодировку, переводишь массив байт в QString. 3. Делаешь нужные преобразования 4. Если надо отдать данные во внешний источник, переводишь QString в нужную кодировку и отправляешь. Название: Re: Кодировка из Windows1251 в UTF-8 Отправлено: sergek от Апрель 21, 2014, 11:49 Еще вопрос после перекодировки из win в utf мои данные будут храниться в qstring?или если нет то как их туда перегнать На мой взгляд, самое изящное объяснение, как работает кодек: http://www.sql.ru/forum/867419/qt-kak-polzovatsya-qtextcodec-dlya-bulochnikov-i-chaynikov (http://www.sql.ru/forum/867419/qt-kak-polzovatsya-qtextcodec-dlya-bulochnikov-i-chaynikov) |