当我通过python email.parser.Parser解析我的电子邮件时,我有很多这样的字符串:
=?ISO-8859-5?Q?=C0=D5=D5=E1=E2=E0_=BF=DB=D0=E2=D5=D6=D5=D9_?=
如何使用python将其解码为utf-8?
答案 0 :(得分:0)
您的输入是带引号的可打印编码文本。您可以使用模块quopri
来处理:
import quopri
incode = '=?ISO-8859-5?Q?=C0=D5=D5=E1=E2=E0_=BF=DB=D0=E2=D5=D6=D5=D9_?='
inencoding = incode[2:12] # 'ISO-8859-5'
intext = incode[15:-2]
result = quopri.decodestring(intext).encode(inencoding)
结果将是
Реестр_Платежей
在quoted-printable编码周围,你还有一个电子邮件标题格式,指定在应用quoted-printable解码后应解释字符串的字符编码。上面的示例代码将“手动”部分作为子字符串,但您也可以一步完成所有这些:
import email
[ (text, encoding) ] = email.header.decode_header(incode)
result = text.decode(encoding)
result
现在将再次成为上面给出的字符串。