Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Mã hóa và giải mã dữ liệu MIME quoted-printable bằng Python


Thường gặp dữ liệu chứa ký tự non-ASCII (email tiếng Việt, v.v.). Python hỗ trợ qua module MIME (Multipurpose Internet Mail Extensions). Bài viết demo encode/decode ký tự đặc biệt.

Sử dụng package email

Module email.mime và email.charset thực hiện encode/decode. Ví dụ: email chứa Unicode, encode sang utf-8 quoted-printable.

Ví dụ

import email.mime, email.mime.nonmultipart, email.charset

msg = email.mime.nonmultipart.MIMENonMultipart('text', 'plain', charset='utf-8')
cs = email.charset.Charset('utf-8')
cs.body_encoding = email.charset.QP
msg.set_payload(u'This is the text containing \u00fcnic\u00f6de', charset=cs)
print(msg)

Kết quả:

Đầu ra

Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
This is the text containing =C3=BCnic=C3=B6de

Sử dụng quopri

Module quopri thực hiện quoted-printable transport encoding/decoding. Dành cho dữ liệu ít ký tự non-printable.

Ví dụ

import quopri

str1 = '\u00e4\u00e9'
encoded = quopri.encodestring(str1.encode('utf-8'))
print(encoded)

str2 = '=C3=A4=C3=A9'
decoded_string = quopri.decodestring(str2)
print(decoded_string.decode('utf-8'))

Kết quả:

Đầu ra

b'=C3=A4=C3=A9'
äé