Russian Qt Forum

Программирование => Общий => Тема начата: vbi от Октябрь 24, 2012, 23:53



Название: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: 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 могу получить служебные символы типа "?,&,=", а вот как получить "Лена"?


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: kambala от Октябрь 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", так что в твоём случае наверное надо всё делать руками.


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: SimpleSunny от Октябрь 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.


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: kambala от Октябрь 25, 2012, 03:31
внутренности QByteArray::fromPercentEncoding точно такие же, как и у QUrl::fromPercentEncoding


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: vbi от Октябрь 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")


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: xokc от Октябрь 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


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: kambala от Октябрь 25, 2012, 12:26
подтверждаю, правда система и версия библиотеки те же


Название: Re: Как из URL с процентами получить ссылку, содержащую русские символы?
Отправлено: vbi от Октябрь 26, 2012, 01:04
Действительно работает.Но "QByteArray::fromPercentEncoding" - не работает