无法解码编码-Python和imaplib
我正在使用Python和imaplib从IMAP获取电子邮件。在这个特定的例子中,我对To:地址有一个问题 我提取编码到:字段,分离地址,然后尝试解码每个地址。我对这个特定字符串有问题。我使用Python decode_header函数对引用的可打印/Base64编码进行解码。我从编码的开始:无法解码编码-Python和imaplib,python,encoding,imap,imaplib,Python,Encoding,Imap,Imaplib,我正在使用Python和imaplib从IMAP获取电子邮件。在这个特定的例子中,我对To:地址有一个问题 我提取编码到:字段,分离地址,然后尝试解码每个地址。我对这个特定字符串有问题。我使用Python decode_header函数对引用的可打印/Base64编码进行解码。我从编码的开始: '=?utf-8?b?vmfzy28gugf0csoty2lv?= <vasco.patricio.pessoal@gmail.com>' 我获得了一个UnicodeDecodeError:
'=?utf-8?b?vmfzy28gugf0csoty2lv?= <vasco.patricio.pessoal@gmail.com>'
我获得了一个UnicodeDecodeError:
UnicodeDecodeError at /api/refresh/emails/
'utf8' codec can't decode byte 0xbe in position 0: invalid start byte
我确认尝试通过控制台对其进行解码会导致相同的异常
解码头不应该返回有效的可解码字符串及其编码吗
谢谢你你在什么地方丢失了大写字母 正确的编码字符串是
=?utf-8?b?VmFzY28gUGF0csOtY2lv?=
。你的看起来是一样的,但都是小写的
由于Base64区分大小写(它使用26个小写字母、26个大写字母、10位数字和另外两个字符组成64个字母),因此小写当然会完全破坏它。我明白了。实际上,由于字符串检测,我降低了大小写,例如,对于
to:
头,它可以是to:
,to:
,或任何排列。所以我把它放低以便于搜索。我从来没有想过它会破坏编码——我自己也永远不会明白这一点。感谢您的宝贵意见!
for part in decoded_parts:
if part[1]:
part_text = part[0].decode(part[1])
else:
part_text = part[0]
UnicodeDecodeError at /api/refresh/emails/
'utf8' codec can't decode byte 0xbe in position 0: invalid start byte