【发布时间】:2019-04-28 08:51:33
【问题描述】:
我有很多来自邮件正文的字符串,它们是这样打印的:
=C3=A9
例如,这应该是“é”。
这种编码到底是什么以及如何解码?
我正在使用 python 3.5
编辑:
我设法通过应用正确编码了邮件正文:
quopri.decodestring(sometext).decode('utf-8')
但是我仍然很难让 FROM 、 TO、 SUBJECT 等...部分正确。
这就是我构建电子邮件的方式:
import imaplib
import email
import quopri
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('mail@gmail.com', '*******')
mail.list()
mail.select('"[Gmail]/All Mail"')
typ, data = mail.search(None, 'SUBJECT', '"{}"'.format('123456'))
data[0].split()
print(data[0].split())
for e_mail in data[0].split():
typ, data = mail.fetch('{}'.format(e_mail.decode()),'(RFC822)')
raw_mail = data[0][1]
email_message = email.message_from_bytes(raw_mail)
if email_message.is_multipart():
for part in email_message.walk():
if part.get_content_type() == 'text/plain':
if part.get_content_type() == 'text/plain':
body = part.get_payload()
to = email_message['To']
utf = quopri.decodestring(to)
text = utf.decode('utf-8')
print(text)
.
.
.
我还是得到了这个:=?UTF-8?B?UMOpdGVyIFBldMWRY3o=?=
【问题讨论】:
-
试一下。
'é'.encode().decode("utf-8")
标签: python-3.x encoding character-encoding