создать запрос HTML-странички в URL-е которой имеются русские буквы |
Здравствуйте, гость ( Вход | Регистрация )
создать запрос HTML-странички в URL-е которой имеются русские буквы |
Гость_Саша_* |
28.1.2008, 20:30
Сообщение
#1
|
Гости |
Я вот тоже как раз с кодировками мучаюсь.
Но у меня вопрос с кодировкой для класса QHttp Как мне корректно создать запрос HTML-странички в URL-е которой имеются русские буквы. Скажем как запросить страничку с адресом "http://aaa.ru?text=абвгде&submit=ok" ? На самом деле "абвгде" как я понял должны быть преобразованы в %E0%E1%E2%E3%E4%E5, т.е. запрос должен быть таким: http://aaa.ru?text=%E0%E1%E2%E3%E4%E5&submit=ok, но вот как получить эти самые %E0%E1%E2%E3%E4%E5 я не знаю. Нашёл только ф-ю QUrl::encode, но она для каждого русского символа делает двухбайтное значение, т.е. что-то типа %С3%AA |
|
|
ViGOur |
28.1.2008, 21:14
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Так:
Проверено в yandex'e...
|
|
|
archimed7592 |
28.1.2008, 21:17
Сообщение
#3
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Гость_Саша_* |
28.1.2008, 21:19
Сообщение
#4
|
Гости |
Так: Проверено в yandex'e... А если в Qt 3.3.4? Там такой ф-ии (toEncoded) нет |
|
|
archimed7592 |
28.1.2008, 21:21
Сообщение
#5
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот, нашёл точное наименование
http://www.crossplatform.ru/documentation/...odecForCStrings |
|
|
archimed7592 |
28.1.2008, 21:22
Сообщение
#6
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
AFAICS, encode'ить в любом случае придётся...
|
|
|
Гость_Саша_* |
28.1.2008, 21:43
Сообщение
#7
|
Гости |
AFAICS, encode'ить в любом случае придётся... Не понял... Значит так, я, для получения правильно закодированной строки написал такую ф-ю: CODE QString GetUrlEncode( QString str ) { const char *sss = str.ascii(); // просто для проверки QString str2 = QTextCodec::codecForLocale()->fromUnicode(str); sss = str2.ascii(); // просто для проверки QUrl::encode( str2 ); sss = str2.ascii(); // просто для проверки return str2; } И она возвращает 2-х байтовые значения русских символов. Т.е. символ 'к' преобразуется в %C3%AA |
|
|
Litkevich Yuriy |
28.1.2008, 22:16
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QUrl::encode, но она для каждого русского символа делает двухбайтное значение, т.е. что-то типа %С3%AA в UTF-16 два байта, в UTF-8 для русского тоже 2 байта, см. здесь |
|
|
Гость_Саша_* |
29.1.2008, 11:34
Сообщение
#9
|
Гости |
QUrl::encode, но она для каждого русского символа делает двухбайтное значение, т.е. что-то типа %С3%AA в UTF-16 два байта, в UTF-8 для русского тоже 2 байта, см. здесь Понятно... Так и что же делать? Мне кажется легче вручную каждую букву перекодировать ф-ей sprintf( str, "%%%02X", c ), чем тратить ещё не знаю сколько времени, чтобы найти ф-ю делающую тоже самое... |
|
|
Текстовая версия | Сейчас: 14.1.2025, 1:28 |