Страницы

Поиск по вопросам

суббота, 9 марта 2019 г.

Как обработать кириллические символы в urllib.request.urlopen()?

Здравствуйте! У меня такой вопрос, urllib.request.urlopen() не принимает кириллические символы в http запросе, Выполняю: urllib.request.urlopen('http://exemple.com/sent?"русский_текст"') получаю: self._output(request.encode('ascii')) UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-17: ordinal not in range(128) Прочитав документацию по urllib.request понял, что urllib.request.urlopen() пытается перевести мой запрос в кодировку latin 1 (iso8859-1) и именно на это он и ругается, как правильно обработать запрос с кириллическими символами?


Ответ

urllib.request.urlopen('http://example.com/send?{0}'.format(quote_plus('"русский_текст"'))) или даже так: urlopen(urlunparse(('http', 'example.com', '/send', None, quote_plus('"русский текст"'), None), )) а вообще либой requests многие штуки чуточку удобнее делать

Комментариев нет:

Отправить комментарий