많은 경우 우리는 항상 일반 ASCII 문자를 갖지 않는 데이터를 처리해야 합니다. 예를 들어, 영어가 아닌 다른 언어로 된 이메일. Python에는 MIME(Multipurpose Internet Mail Extensions) 기반 모듈을 사용하여 이러한 문자를 처리하는 메커니즘이 있습니다. 이 기사에서는 이메일 또는 일부 직접 입력에서 이러한 문자를 디코딩하는 방법을 살펴보겠습니다.
이메일 패키지 사용
이메일 패키지에는 아래 예제와 같이 인코딩 및 디코딩 작업을 수행할 수 있는 mime 및 charset이라는 모듈이 있습니다. 유니코드 문자가 포함된 이메일 메시지를 받아 utf-8로 인코딩했습니다.
예시
email.mime, email.mime.nonmultipart, email.charsetmsg=email.mime.nonmultipart.MIMENonMultipart('text', 'plain', charset='utf-8')#새 charsetcs=email을 구성합니다. charset.Charset('utf-8')cs.body_encoding =email.charset.QP# 새로운 charsetmsg.set_payload(u'This is the text included ünicöde', charset=cs)print(msg)사전>위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
콘텐츠 유형:텍스트/일반; charset="utf-8"MIME-Version:1.0Content-Transfer-Encoding:quoted-printable이것은 =C3=BCnic=C3=B6de를 포함하는 텍스트입니다.쿼프리 사용
이 파이썬 모듈은 인용 인쇄 가능한 전송 인코딩 및 디코딩을 수행합니다. 인용 인쇄 가능 인코딩은 인쇄할 수 없는 문자가 상대적으로 적은 데이터용으로 설계되었습니다. 아래 예에서 비정규 ASCII 문자로 문자열을 인코딩 및 디코딩하는 방법을 볼 수 있습니다.
예시
import quopristr1 ='äé'#encoded =quopri.encodestring('äé'.encode('utf-8'))encoded =quopri.encodestring(str1.encode('utf-8'))print(인코딩됨) str2 ='=C3=A4=C3=A9'decoded_string =quopri.decodestring(str2)print(decoded_string.decode('utf-8'))위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
b'=C3=A4=C3=A9'아에