python中文名的发件人邮件读取解析_Python解析中文电子邮件解码

我写了一些Python代码来从Gmail服务器获取电子邮件。代码如下:self.M = imaplib.IMAP4_SSL(self.IMAP_SERVER, self.IMAP_PORT)

data = self.M.fetch(id,"(RFC822)")

if data[0] == 'OK':

msg = email.message_from_string(data[1][0][1])

else:

print 'Error!'

mail_subject = email.Header.decode_header(msg['subject'])[0][0]

print email.Header.decode_header(msg['subject'])

print '~~~separator~~~'

print mail_subject

英文邮件主题显示正确:

^{pr2}$

但在中文之后:[('\xd5\xe2\xca\xc7\xd6\xd0\xce\xc4\xb2\xe2\xca\xd4\xa3\xa1', 'gb2312')]

~~~separator~~~

╒Γ╩╟╓╨╬─▓Γ╩╘úí

函数isinstance()显示字符类型为“str”,

所以我试着解决这个问题:print unicode(mail_subject, 'gb2312')

并发生错误:File "C:\Python27\lib\encodings\cp437.py", line 12, in encode

return codecs.charmap_encode(input,errors,encoding_map)

UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-6:

character maps to

我也试着直接解码这个角色:print mail_subject.decode("gb2312")

我又犯了同样的错误!在

那么,如何解决这个问题呢?在

非常感谢!:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值