【发布时间】:2022-01-17 00:01:32
【问题描述】:
我正在尝试使用 imaplib 阅读电子邮件,但由于某种原因,utf8 字符显示不正确。例如邮箱:soporte técnico 结果:soporte t=C3=A9cnico
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email@gmail.com', 'pass')
mail.select('inbox')
res, mailList = mail.search(None, "FROM", "noreply@test.com")
for x in reversed(mailList[0].split()):
typ, dataMail = mail.fetch(str(int(x)), '(RFC822)')
print(dataMail[0][1].decode("utf8"))
如何才能正确阅读带有 utf8 字符的电子邮件?谢谢
【问题讨论】:
-
它可能不是 UTF-8 编码的消息。检查电子邮件的标题是否有内容编码。
-
您有一个带有Q encoding 或实际quoted-printable encoding 的值(Q 编码用于消息标头,在消息正文中引用-可打印,检查 Content-Transfer-Encoding 标头)- 那里处理这些编码的辅助函数,寻找它们。
-
@Tomalak 谢谢你的回复。我曾尝试使用模块
quopri解码电子邮件,但现在它返回给我这个:M\xc3\xa1s informaci\xc3\xb3n enfromMás información en如果我尝试解码为 utf8,它会显示此错误:'utf-8' codec can't解码位置 1095 中的字节 0xee:无效的继续字节 -
重复的question的题目大相径庭,但答案是一样的。