【发布时间】:2015-05-13 04:34:57
【问题描述】:
我已经在我的代码中解码了很多电子邮件附件文件名。
但是这个特殊的文件名破坏了我的代码。
这是一个最小的例子:
from email.header import decode_header
encoded_filename='=?UTF-8?B?U2FsZXNJbnZvaWNl?==?UTF-8?B?LVJlcG9ydC5wZGY=?='
decoded_header=decode_header(encoded_filename) # --> [('SalesInvoiceQ1|\x04\xb5I\x95\xc1\xbd\xc9\xd0\xb9\xc1\x91\x98', 'utf-8')]
filename=str(decoded_header[0][0]).decode(decoded_header[0][1])
例外:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb5 in position 16: invalid start byte
不要问我怎么做的,但是 Thunderbird 能够将此文件名解码为:SalesInvoice-Report.pdf
我怎样才能像电子邮件客户端一样使用 python 解码?
【问题讨论】:
标签: python decode email-attachments email-headers