저는 IMAP에서 Python 및 imaplib을 사용하여 이메일을 받고 있습니다. 이 특정 경우에는받는 사람 : 주소에 문제가 있습니다.인코딩을 디코딩 할 수 없습니다 - Python 및 imaplib
인코딩 된 To : 필드를 추출하고 주소를 분리 한 다음 각각을 디코딩하려고합니다. 이 특정 문자열에 문제가 있습니다. 파이썬 decode_header 함수를 사용하여 Quoted-Printable/Base64 인코딩을 디코드하고 있습니다. 나는 인코딩 시작 : Vasco Patrício <[email protected]>
(내 이름과 이메일)해야하는데
'=?utf-8?b?vmfzy28gugf0csoty2lv?= <[email protected]>'
. 그러나
[('\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]
를 예상 한 바와 같이, decode_header 2 튜플이 배열 결과 인코딩 된 문자열과 인코딩 세트를 반환
UnicodeDecodeError at /api/refresh/emails/
'utf8' codec can't decode byte 0xbe in position 0: invalid start byte
내가하려고하는 것은 같은 예외 콘솔 결과를 통해 디코딩을 확인 :
은 내가 UnicodeDecodeError을 구하십시오.
decode_header가 유효한 인코딩 해제 가능 문자열을 해당 인코딩과 함께 반환해야합니까?
고맙습니다.
알 수 있습니다. 실제로'To :'헤더는'to :','TO :'또는 순열이 될 수 있으므로 문자열 감지로 인한 경우를 낮추었습니다. 그래서 나는 수색을 쉽게하기 위해 그것을 줄였다. 나는 그것이 인코딩을 깨뜨릴 것이라고 생각하지 못했습니다 - 그리고 나는 결코 이것을 알아 내지 못했을 것입니다. 귀중한 의견을 보내 주셔서 감사합니다! –