Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 MIME 인용 인쇄 가능한 데이터 인코딩 및 디코딩

<시간/>

많은 경우 우리는 항상 일반 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'아에