Страницы

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

воскресенье, 12 января 2020 г.

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

#python #http #python_3x #urllib


Здравствуйте! У меня такой вопрос, 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) и именно на это он и ругается,
как правильно обработать запрос с кириллическими символами?    


Ответы

Ответ 1



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

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

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