2016-08-24 16 views
0

私はPython 2.7を使用していますが、電子メールの件名ヘッダー行を正しくデコードしようとしています。電子メールの送信元は次のとおりです。Python 2.7 - 電子メールの件名ヘッダー行を正しくデコードできません

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

私はemail.headerライブラリから関数decode_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、2番目のケースでは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 

あなたが戻ってヘッダデータエンコーディングの両方を得る理由です。

関連する問題