如何解码python电子邮件中的utf文件名?
我使用代码解包电子邮件文件,这是解包MIME消息的一部分,但我的问题是uft文件名,如:如何解码python电子邮件中的utf文件名?,python,email,decode,Python,Email,Decode,我使用代码解包电子邮件文件,这是解包MIME消息的一部分,但我的问题是uft文件名,如: =?utf-8?B?2YbYs9iu2YcgINin2YTYrdin2YLZitmHINmC2LHYp9ix2K/Yp9ivINin2LM=?= =?utf-8?B?2KrYp9mG2K/Yp9ix2K8g2LPYp9iy2YogMTExMTEuZG9jeA==?= 这是使程序崩溃的原因 fp = open(os.path.join(directory, filename), 'wb') 与 因为它包含
=?utf-8?B?2YbYs9iu2YcgINin2YTYrdin2YLZitmHINmC2LHYp9ix2K/Yp9ivINin2LM=?= =?utf-8?B?2KrYp9mG2K/Yp9ix2K8g2LPYp9iy2YogMTExMTEuZG9jeA==?=
这是使程序崩溃的原因
fp = open(os.path.join(directory, filename), 'wb')
与
因为它包含不可接受的字符,或者我认为这是因为它。它不是像这样可以解码的
第一个问题是传递此错误,第二个问题是解码文件名。接受一个字符串,并以
[(文本,编码),…]
的形式返回元组列表,其中编码
是无
用于未编码的片段(因此表面上具有ascii
编码).这不是UTF,而是。这不是文件名,而是文件内容本身。实际上,这是编码。它看起来不像文件名,也许是主题行?但我不懂阿拉伯语,所以我真的不知道。@JonathonReinhart它是填充代码文件名部分的部分。不,它是文件名,它是某种阿拉伯字符。@tripleee它实际上是一个文件名。我在原始电子邮件文件中看到了它,我应该导入什么?在标题中。您是否阅读了链接文档?示例中有来自email.header import decode_header的,因此这可能是一个好的开始。它返回[('None',None)],带有字符,我写它返回一些东西,比如他的86\xd8\xb3\xd8\xae\xd9\x87\xd8\xa7\xd9\x8,这是一个无效的片段,但快速一看,它看起来像UTF-8。
IOError: [Errno 2] No such file or directory