UnicodeDecodeError: кодек "ascii" не может декодировать байт 0xe3
UnicodeDecodeError: кодек "ascii" не может декодировать байт 0xe3
Я сталкиваюсь с этой проблемой при запуске почтового скрипта в py 2.7 для строки...
msg.attach (MIMEText (welcome_msg + htmlMessageContent + footer_msg, 'html'))
1 ответ
Один из элементов строки, которую вы объединяете
welcome_msg + htmlMessageContent + footer_msg
Unicode, а другой нет. Когда вы объединяете строки, Python преобразует их все в общий тип (Unicode), так же, как и при добавлении целого числа в число с плавающей точкой. Но преобразование строки по умолчанию в Unicode - ascii, и если строка содержит не-ascii символ, произойдет сбой.
Узнайте, какая строка не является Unicode. Для этого вы можете использовать type()
, Оберните эту строку в вызове unicode()
это объясняет, как вы хотите '\xe3'
интерпретированы. Например, если '\xe3'
следует интерпретировать как 'ã'
:
unicode(mystring, encoding='Latin-1')
Тогда ваша конкатенация должна работать.