UnicodeDecodeError:'ascii'编解码器无法解码字节0xe3
我在py 2.7中为线路运行邮件脚本时遇到了这个问题...
msg.attach(MIMEText(welcome_msg + htmlMessageContent + footer_msg,'html'))
答案 0 :(得分:0)
您正在连接的字符串的一个元素
welcome_msg + htmlMessageContent + footer_msg
是Unicode,而另一个则不是。当您连接字符串时,Python将它们全部转换为公共类型(Unicode),就像将整数添加到float时一样。但是默认的字符串转换为Unicode是ascii,如果字符串包含非ascii字符,它将失败。
找出哪个字符串不是Unicode。为此,您可以使用type()
。在调用unicode()
时将该字符串换行,以解释您希望'\xe3'
解释的方式。
例如,如果'\xe3'
应解释为'ã'
:
unicode(mystring, encoding='Latin-1')
然后你的串联应该有用。