Russian Qt Forum

Qt => Работа с сетью => Тема начата: darkhac2 от Август 09, 2012, 17:02



Название: fromPercentEncoded и русские буквы
Отправлено: darkhac2 от Август 09, 2012, 17:02
Проблема в следующем:

Код:
_URI = QByteArray::fromPercentEncoding(data)

\\data == "/?test=%EF%F0%E8%E2%E5%F2"

декодирует все символы нормально кроме русских букв. вместо них пишет в дебагере \ddd а при выводе  ïðèâåò

Может быть кто-нибудь знает решение проблемы?


Название: Re: fromPercentEncoded и русские буквы
Отправлено: Bepec от Август 09, 2012, 17:16
Мб стоит использовать кодеки? :) QTextCodec - не, не слышал?


Название: Re: fromPercentEncoded и русские буквы
Отправлено: darkhac2 от Август 09, 2012, 17:51
слышал. браузер использует UTF8. ставлю его через setCodecForLocale в результате меняется ничего. декодер лебедева вообще сказал что это cp1252(достаточно странно для браузеов)


Название: Re: fromPercentEncoded и русские буквы
Отправлено: Bepec от Август 09, 2012, 17:57
А ты смотри что приходит и преобразовывай в то, что нужно тебе :)


Название: Re: fromPercentEncoded и русские буквы
Отправлено: darkhac2 от Август 09, 2012, 18:37
как это можно посмотреть? в стандарте хттп нет хедера который говорил бы кодировку URL. причем разные браузеры кстати по разному кодируют. Chrome - UTF8 а опера CP1251


Название: Re: fromPercentEncoded и русские буквы
Отправлено: Bepec от Август 09, 2012, 19:06
Вообще то,в браузерах это настраивается.
Во вторых, ничто не мешает тебе самому запрашивать страничку :)
В третьих, большинство страничек идут в utf8.

И в чётвертых - если кодировка не указана - это плохая страничка :)


Название: Re: fromPercentEncoded и русские буквы
Отправлено: darkhac2 от Август 09, 2012, 19:09
я не эмулирую поведение браузера, я наоборот сервер пишу.


Название: Re: fromPercentEncoded и русские буквы
Отправлено: alexis031182 от Август 09, 2012, 19:35
как это можно посмотреть? в стандарте хттп нет хедера который говорил бы кодировку URL. причем разные браузеры кстати по разному кодируют. Chrome - UTF8 а опера CP1251
Можно наверное опираться на "Content-Type". Он задаёт маймтип данных и кодировку в случае с текстом.