@BuBux

Как решить проблему с кодировкой в python?

Прикладываю код и вывод. Не понимаю, что делать.
name = 'катп'
response = urllib.request.urlopen('myurl?cl_name=' + name)
data = response.read().decode('utf-8')

Вывод:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-45: ordinal not in range(128)
В случае если я вместо переменной name подставлю тоже самое слово только в формате: %d0%ba%d1%80%d0%b0%d0%bc - всё будет работать. Возможно ли как то перед вставкой переменной декодировать её в нужный формат или вовсе иначе необходимо поступать?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
@alex1478
import urllib.parse

name = urllib.parse.quote('катп')
response = urllib.request.urlopen('myurl?cl_name=' + name)
data = response.read().decode('utf-8')

Так попробуйте. На будущее: лучше используйте requests вместо голого urllib
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы