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