2016-08-24 12 views
0

파이썬 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을 사용하고 두 번째 경우에는 iso-8895-1 사용). 실제 유니 코드 문자열을 얻기 위해 디코드해야합니다. 예를 들어

:

>>> 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 

.