Russian Qt Forum
Ноябрь 23, 2024, 07:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как из URL с процентами получить ссылку, содержащую русские символы?  (Прочитано 8202 раз)
vbi
Гость
« : Октябрь 24, 2012, 23:53 »

Например есть ссылка: "mysite/index.php%3Fdo%3Dforum%26act%3Dgetforum%26code%3Duser%26mname%3D%25CB%25E5%25ED%25E0123"
как мне из нее получить "mysite/index.php?do=forum&act=getforum&code=user&mname=Лена123" стандартными методами?

Например используя QUrl могу получить служебные символы типа "?,&,=", а вот как получить "Лена"?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Октябрь 25, 2012, 00:32 »

для справки: QUrl::toPercentEncoding("mysite/index.php?do=forum&act=getforum&code=user&mname=Лена123") выдаёт "mysite%2Findex.php%3Fdo%3Dforum%26act%3Dgetforum%26code%3Duser%26mname%3D%C3%90%C2%9B%C3%90%C2%B5%C3%90%C2%BD%C3%90%C2%B0123", так что в твоём случае наверное надо всё делать руками.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SimpleSunny
Гость
« Ответ #2 : Октябрь 25, 2012, 01:04 »

QByteArray QByteArray::fromPercentEncoding ( const QByteArray & input, char percent = '%' ) [static]
Returns a decoded copy of the URI/URL-style percent-encoded input. The percent parameter allows you to replace the '%' character for another (for instance, '_' or '=').

For example:

 QByteArray text = QByteArray::fromPercentEncoding("Qt%20is%20great%33");
 text.data();            // returns "Qt is great!"
This function was introduced in Qt 4.4.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Октябрь 25, 2012, 03:31 »

внутренности QByteArray::fromPercentEncoding точно такие же, как и у QUrl::fromPercentEncoding
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
vbi
Гость
« Ответ #4 : Октябрь 25, 2012, 10:11 »

fromPercentEncoding - работает для всего, кроме русских символов. Например для ссылки "http://savedhistory.net/k/%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B-dle" - не переводит в русские. (должно быть "http://savedhistory.net/k/шаблоны-dle")
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #5 : Октябрь 25, 2012, 12:24 »

Windows 7 x64, Qt 4.8.2 x64.
QString  url = QUrl::fromPercentEncoding("http://savedhistory.net/k/%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B-dle");

Совершенно нормально декодирует в http://savedhistory.net/k/шаблоны-dle
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Октябрь 25, 2012, 12:26 »

подтверждаю, правда система и версия библиотеки те же
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
vbi
Гость
« Ответ #7 : Октябрь 26, 2012, 01:04 »

Действительно работает.Но "QByteArray::fromPercentEncoding" - не работает
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 23.