.encode
- для преобразования строки Unicode (unicode
в 2.x, str
в 3.x) в байтовую строку (str
в 2.x, bytes
в 3.x).
В 2.x разрешено вызывать .encode
для str
объекта.Python неявно декодирует сначала строку в Unicode: s.encode(e)
работает так, как если бы вы написали s.decode(sys.getdefaultencoding()).encode(e)
.
Проблема в том, что кодировкой по умолчанию является "ascii", а ваша строка содержит символы не ASCII.Вы можете решить эту проблему, явно указав правильную кодировку.
>>> '\xAF \xBE'.decode('ISO-8859-1').encode('UTF-8')
'\xc2\xaf \xc2\xbe'