我取得使用Python和imaplib從IMAP電子郵件。在這個特定的情況下,我對To:地址有問題。不能解碼編碼 - Python和imaplib
我提取編碼:欄,分隔地址,然後嘗試每個進行解碼。我對這個特定的字符串有問題。我使用Python的decode_header函數來解碼Quoted-Printable/Base64編碼。我開始與編碼:
'=?utf-8?b?vmfzy28gugf0csoty2lv?= <[email protected]>'
它應該是Vasco Patrício <[email protected]>
(我的名字和電子郵件)。正如預期的那樣,decode_header返回一組經編碼的子串和它們的編碼的,這導致這個陣列的2元組中:
[('\xbeg\xf3\xcbo \xba\x07\xf4r\xca-\xcbio', 'utf-8'), ('<[email protected]>', None)]
然而,當我嘗試使用這個非常簡單的代碼的第一個元組來解碼:
for part in decoded_parts:
if part[1]:
part_text = part[0].decode(part[1])
else:
part_text = part[0]
我獲得的UnicodeDecodeError:
UnicodeDecodeError at /api/refresh/emails/
'utf8' codec can't decode byte 0xbe in position 0: invalid start byte
我可以證實,試圖通過在同一個例外控制檯結果進行解碼。
decode_header是否應該將有效的可解碼字符串與其編碼一起返回?
謝謝
我明白了。事實上,由於字符串檢測,我降低了案例,例如,對於「To:」頭,例如,它可以是:','TO:'或任何置換。所以我是低調的,以緩解搜索。我從來沒有想過它會打破編碼 - 我從來沒有想到我自己。感謝您的寶貴意見! –