0

我有以下代码:

msgtxt = "é"

msg = MIMEText(msgtxt)
msg.set_charset('ISO-8859-1')
msg['Subject'] = "subject"
msg['From'] = "from@mail.com"
msg['To'] = "to@mail.com"
serv.sendmail("from@mail.com","to@mail.com", msg.as_string())

电子邮件以 é 作为其正文而不是预期的 é

我试过了 :

msgtxt = "é".encode("ISO-8859-1")
msgtxt = u"é"
msgtxt = unicode("é", "ISO-8859-1")

都产生相同的结果。

如何使这项工作?

任何帮助表示赞赏。在此先感谢,J。

4

2 回答 2

1
msgtxt = "é"
msg.set_charset('ISO-8859-1')

那么,包含此代码的源文件的编码是什么?如果它是 UTF-8,这是一个很好的默认选择,只需编写é将给你两个字节的 string '\xc3\xa9',当被视为 ISO-8859-1 时,看起来像é.

如果您想在源文件中使用非 ASCII 字节字符串文字,而不必担心文本编辑器将其保存为什么编码,请使用字符串文字转义:

msgtxt = '\xE9'
于 2010-09-15T22:00:51.723 回答
0
# coding: utf-8        (or whatever you want to save your source file in)
msgtxt = u"é"
msg = MIMEText(msgtxt,_charset='ISO-8859-1')

没有u文本将在源编码中。作为 Unicode 字符串,msgtxt 将以指定的字符集进行编码。

于 2010-09-16T01:58:23.263 回答