Название: QTextCodec и русский (QT 4.5) Отправлено: syrok от Мая 22, 2009, 02:38 Значит понадобилось мне высылать GET запрос на сервер... При этом строку нужно превратить в процентную нотацию.
Для этого была найдена стандартная функция QUrl::toPercentEncoding(const QString & input). Все казалось прекрасным, как вдруг обнаружилось,что запросы, имеющие русские символы не работают. Проснифив трафик ситуация прояснилась. Оказывается, эта функция интерпретирует каждый символ, как два байта! А мне нужно, что бы она давала 1 байт. Помучавшись с функцией и не добившись результата было решено написать свою. И опять проблеммы. Нужно получать аски код каждого символа. Покопавшись в ассистенте было найдено вот это: Код:
Название: Re: QTextCodec и русский (QT 4.5) Отправлено: kirill от Мая 22, 2009, 05:26 Код: QString string = "привет мир"; Название: Re: QTextCodec и русский (QT 4.5) Отправлено: syrok от Мая 22, 2009, 12:45 Код: QString string = "привет мир"; Попробовал я такое: Код: QString string = "привет мир"; Я в отчаянии... Название: Re: QTextCodec и русский (QT 4.5) Отправлено: developer от Мая 22, 2009, 23:23 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
i togda ispolzyesh svoj cod. Poprobyj, po krajnej mere menja eta construccija spasala. Название: Re: QTextCodec и русский (QT 4.5) Отправлено: syrok от Мая 23, 2009, 02:00 Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251")); Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("windows-1251")); PS: Может кому-то будет полезно, QUrl::toPercentEncoding так и не захотел работать, но как обнаружилось такой же метод есть у QByteArray. Вот он РАБОТАЕТ! Название: Re: QTextCodec и русский (QT 4.5) Отправлено: ритт от Мая 24, 2009, 02:14 Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251")); Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("windows-1251")); а в своём репертуаре пользователи, ленящиеся читать документацию *хотя бы по тем функциям, которые используют в собственном коде*. фраза "но не думал" довольно точно характеризует таких пользователей. PS: Может кому-то будет полезно, QUrl::toPercentEncoding так и не захотел работать, но как обнаружилось такой же метод есть у QByteArray. Вот он РАБОТАЕТ! если это так, следует отрапортовать. |