forum.bitel.ru
http://forum.bitel.ru/

русские символы в url
http://forum.bitel.ru/viewtopic.php?f=22&t=4489
Страница 1 из 1

Автор:  bud_on [ 30 авг 2010, 13:29 ]
Заголовок сообщения:  русские символы в url

Пишу скрипт для создания картотеки по договорам в билинге.
Идея состоит в том, что скрипту передаю номер договора, он делает запрос билингу
Код:
http://billinghost:8080/bgbilling/executer?user=admin&pswd=passwd&module=contract&action=FilterContract&contractMask=011

получает id договора и получает интересующую инфу
Код:
http://billinghost:8080/bgbilling/executer?user=admin&pswd=passwd&module=contract&action=ContractParameters&cid=131&

после чего парсю xml и складываю в картотеку.

Так вот встал вопрос, что делать с русскими символами в url запросе (в номере договора присутствуют кирилические символы)?
Пробовал подставлять как описано в википедии (http://ru.wikipedia.org/wiki/URL) - не работает. Более того как я понял русские символы кодируется 1-м символом, а не 2-мя.

Так сочетание букв "тк" - должно конвертироваться как %F2%EA (смотрел в дебажном режиме лог клиента). Как получить эти значения? подскажите в какую сторону курить...
Если провести стандартное преобразование этих символов, например, на python
Код:
import urllib
print urllib.quote("тк")

получим %D1%82%D0%BA

Автор:  dimOn [ 30 авг 2010, 13:43 ]
Заголовок сообщения:  Re: русские символы в url

Два символа - в юникоде, у нас всё в cp1251.

Автор:  dimOn [ 30 авг 2010, 13:44 ]
Заголовок сообщения:  Re: русские символы в url

bud_on писал(а):
Так сочетание букв "тк" - должно конвертироваться как %F2%EA (смотрел в дебажном режиме лог клиента). Как получить эти значения? подскажите в какую сторону курить...
Если провести стандартное преобразование этих символов, например, на python
Код:
import urllib
print urllib.quote("тк")

получим %D1%82%D0%BA

Как-то там в пайтоне должно быть (наверно) метод, который возвращает квотирование не в utf-8, а в старых допотопных кодировках.

Автор:  bud_on [ 30 авг 2010, 14:02 ]
Заголовок сообщения:  Re: русские символы в url

извратился вот так
Код:
print urllib.quote("тк".decode("utf-8").encode('cp1251'))

получаем нужные %F2%EA

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/