我正在使用电子邮件模块解析mbox格式的电子邮件。电子邮件来自Gmail。
代码的重要部分是:
import email
email_content = sys.stdin.read()
email_obj = email.message_from_string(email_content)
subject = email_obj['subject']
。
对于这个主题,我的编码有点奇怪。在原始文本中,它看起来像:
Subject: =?UTF-8?B?MjAxOS4gw6FwcmlsaXMgMjUu?=
。谁能告诉我它是如何编码的,我该如何“提取”它?
非常感谢。
Python:2.7.13
。
答案 0 :(得分:2)
主题已按照RFC 2047进行编码。这是因为电子邮件主题是标头标签,而标头标签必须是ascii。
要解码:
>>> from email.header import decode_header
>>> decode_header("Subject: =?UTF-8?B?MjAxOS4gw6FwcmlsaXMgMjUu?=")
[('Subject:', None), ('2019. \xc3\xa1prilis 25.', 'utf-8')]
元组中的转义字节解码如下:
'2019. április 25.'