我正在使用 Python 中的 GMail API 来检索用法语编写的邮件,但实际上我遇到了口音问题。
我用这个检索消息:
message = service.users().messages().get(userId="me", id=i, format="raw").execute()
我想要的只是获取邮件的正文,所以我从这个开始:
base64.urlsafe_b64decode(message['raw'].encode('ASCII'))
对于某些邮件,它有效,我检索所有邮件数据,包括法语文本,例如:
"Cette semaine, vous vous êtes servis du module de révision 0 fois"
对于其他一些人,我得到引用打印编码,如下所示:
"Salut, =E7a farte?"
引用打印编码没有问题,因为我使用该quopri
模块构建了一个简单的解码功能。这里的主要问题是最后一句对于quoted-print编码是错误的,编码的字符ç
应该是这样编码的:
"Salut, =C3=A7a farte?"
所以用错误的编码句子,我最终得到了这种东西:
Salut, �a farte?
我怀疑来源是不同的邮件客户端,我的第一个示例是从 Gmail 客户端发送到 Outlook 地址的消息,而第二个示例则相反;发送到 Gmail 地址的 Outlook 邮件。
我的问题是,有没有办法为任何可能的情况处理解码?