2016-08-24 89 views
0

我正在使用Python 2.7,並試圖正確解碼電子郵件的主題標題行。的電子郵件的來源是:Python 2.7 - 無法正確解碼電子郵件主題標題行

Subject: =?UTF-8?B?VGkgw6ggcGlhY2l1dGEgbGEgZGVtbz8gU2NvcHJpIGFsdHJlIG4=?= 

我使用函數decode_header(標題)從email.header庫,並且其結果是:

[('Ti \xc3\xa8 piaciuta la demo? Scopri altre n', 'utf-8')] 

在 'XC3 \ xa8' 部分應該匹配'è'字符,但沒有正確解碼/顯示。 又如:

Subject: =?iso-8859-1?Q?niccol=F2_cop?= =?iso-8859-1?Q?ernico?= 

結果:

[('niccol\xf2 copernico', 'iso-8859-1')] 

我怎樣才能獲得正確的字符串?

回答

1

得到正確的字符串。它只是編碼(在第一種情況下使用UTF-8,在第二種情況下使用iso-8895-1);你需要解碼它才能得到實際的Unicode字符串。

例如:

>>> print unicode('Ti \xc3\xa8 piaciuta la demo? Scopri altre n', 'utf-8') 
Ti è piaciuta la demo? Scopri altre n 

或者:

>>> print unicode('niccol\xf2 copernico', 'iso-8859-1') 
niccolò copernico 

這就是爲什麼你回來兩個頭數據編碼。