Python IMAP: =?utf-8?Q?在主题字符串中

新手上路,请多包涵

我正在显示带有 IMAP 的新电子邮件,一切看起来都很好,除了一个邮件主题显示为:

=?utf-8?Q?Subject?=

我该如何解决?

原文由 janeh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 760
2 个回答

在 MIME 术语中,这些编码块称为编码字。您可以像这样解码它们:

 import email.header
text, encoding = email.header.decode_header('=?utf-8?Q?Subject?=')[0]

查看 email.header 的文档以获取更多详细信息。

原文由 ataylor 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个 MIME 编码字。您可以使用 email.header 解析它:

 import email.header

def decode_mime_words(s):
    return u''.join(
        word.decode(encoding or 'utf8') if isinstance(word, bytes) else word
        for word, encoding in email.header.decode_header(s))

print(decode_mime_words(u'=?utf-8?Q?Subject=c3=a4?=X=?utf-8?Q?=c3=bc?='))

原文由 phihag 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题