使用Python 3,我試圖解析來自mbox
文件的電子郵件。Python decode_header分裂原始字符串
for message in mailbox.mbox('file'):
sender = message['From']
c = decode_header(sender)
原始電子郵件具有這種獨特的From:
頭
From: "=?UTF-8?Q?Mark_from_Site?=" <[email protected]>
反正c
是
[(b'"', None), (b'Mark from Site', 'utf-8'), (b'" <[email protected]>', None)]
在這種情況下,所述線被意外地分割以下引號"
在多個元素。
處理此操作可能很麻煩,因爲根據"
的數量,列表中可能存在未定義數量的元素(並非總是3個像上面那樣),並且還可能存在其他分裂原因。
當沒有字符串編碼時(即:當標題爲純粹的ascii
時),沒有分割並且c
是"Mark from Site" <[email protected]>
。
有沒有辦法避免這種拆分還爲非ascii
編碼?
或者,否則,如何正確解析這種類型的頭文件?
這實際上不會拆分字符串。但是現在,標題的編碼被認爲好像它們都是'utf-8'。如果我使用'Header(message ['From'])',所有的消息都被認爲是'us-ascii'。有沒有辦法讓'Header'自己識別正確的編碼? – BowPark