如何解码消息的mime部分并在Python 2.7中获取** unicode **字符串?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何解码消息的mime部分并在Python 2.7中获取** unicode **字符串?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1904字,纯文字阅读大概需要3分钟。
内容图文
![如何解码消息的mime部分并在Python 2.7中获取** unicode **字符串?](/upload/InfoBanner/zyjiaocheng/819/b9db492aeaf542f6a6557f0593dff18c.jpg)
这是一个尝试获取电子邮件消息的html部分的方法:
from __future__ import absolute_import, division, unicode_literals, print_function
import email
html_mail_quoted_printable=b'''Subject: =?ISO-8859-1?Q?WG=3A_Wasenstra=DFe_84_in_32052_Hold_Stau?=
MIME-Version: 1.0
Content-type: multipart/mixed;
Boundary="0__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253"
--0__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253
Content-type: multipart/alternative;
Boundary="1__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253"
--1__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable
Freundliche Gr=FC=DFe
--1__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline
Content-transfer-encoding: quoted-printable
<html><body>
Freundliche Gr=FC=DFe
</body></html>
--1__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253--
--0__=4EBBF4C4DFD012538f9e8a93df938690918c4EBBF4C4DFD01253--
'''
def get_html_part(msg):
for part in msg.walk():
if part.get_content_type() == 'text/html':
return part.get_payload(decode=True)
msg=email.message_from_string(html_mail_quoted_printable)
html=get_html_part(msg)
print(type(html))
print(html)
输出:
<type 'str'>
<html><body>
Freundliche Gr??e
</body></html>
不幸的是我得到一个字节串.我想要unicode字符串.
根据this answer msg.get_payload(decode = True)应该做的魔术.但它不是在这种情况下.
如何解码消息的mime部分并在Python 2.7中获取unicode字符串?
解决方法:
Unfortunately I get a byte string. I would like to have unicode string.
get_payload的decode = True参数仅解码Content-Transfer-Encoding包装器,该消息中的= -encoding.从那里到角色是电子邮件包让你自己做的许多事情之一:
bytes = part.get_payload(decode=True)
charset = part.get_content_charset('iso-8859-1')
chars = bytes.decode(charset, 'replace')
(如果消息指定没有编码,则iso-8859-1是后备.)
内容总结
以上是互联网集市为您收集整理的如何解码消息的mime部分并在Python 2.7中获取** unicode **字符串?全部内容,希望文章能够帮你解决如何解码消息的mime部分并在Python 2.7中获取** unicode **字符串?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。