我正在使用Python 2.7,我正在尝试正确解码电子邮件的主题标题行。电子邮件的来源是:
Subject: =?UTF-8?B?VGkgw6ggcGlhY2l1dGEgbGEgZGVtbz8gU2NvcHJpIGFsdHJlIG4=?=
我使用email.header库中的函数decode_header(header),结果是:
[('Ti \xc3\xa8 piaciuta la demo? Scopri altre n', 'utf-8')]
'xc3 \ xa8'部分应与'è'字符匹配,但未正确解码/显示。 另一个例子:
Subject: =?iso-8859-1?Q?niccol=F2_cop?= =?iso-8859-1?Q?ernico?=
结果:
[('niccol\xf2 copernico', 'iso-8859-1')]
如何获得正确的字符串?
答案 0 :(得分:1)
你 获取正确的字符串。它只是编码(在第一种情况下使用UTF-8,在第二种情况下使用iso-8895-1);你需要解码它来获得实际的unicode字符串。
例如:
>>> print unicode('Ti \xc3\xa8 piaciuta la demo? Scopri altre n', 'utf-8')
Ti è piaciuta la demo? Scopri altre n
或者:
>>> print unicode('niccol\xf2 copernico', 'iso-8859-1')
niccolò copernico
这就是你回复标题数据和编码的原因。