字符串在将编码从ascii转换为utf8后仍然显示乱码字符

2024-09-22 14:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我转换了一个字符串

body = 'e n=C3=A3o =C3=A9 o =C3=BAnico autor a poder aceit=C3=A1-la'

bodys = bodys.encode('utf-8')

但我仍然能看到乱七八糟的字符"=C3=A9"

这是通过IMapClient模块从电子邮件正文解析的字符串。 你知道有没有办法转换成可读的字符?你知道吗

非常感谢!你知道吗


Tags: 字符串a1body字符lautfencodea9
1条回答
网友
1楼 · 发布于 2024-09-22 14:29:23

这里有一个^{} (quoted printable)字符串。你知道吗

要从中获取文本字符串,必须:

>>> import codecs
>>> s = 'e n=C3=A3o =C3=A9 o =C3=BAnico autor a poder aceit=C3=A1-la'
>>> s_binary = s.encode('UTF-8')
>>> s_binary
b'e n=C3=A3o =C3=A9 o =C3=BAnico autor a poder aceit=C3=A1-la'
>>> s_utf8 = codecs.decode(s_binary, 'quopri')
>>> s_utf8
b'e n\xc3\xa3o \xc3\xa9 o \xc3\xbanico autor a poder aceit\xc3\xa1-la'
>>> s_text = s_utf8.decode('UTF-8')
>>> s_text
'e não é o único autor a poder aceitá-la'

或者把它们放在一起:

>>> codecs.decode(s.encode('UTF-8'), 'quopri').decode('UTF-8')
'e não é o único autor a poder aceitá-la'

相关问题 更多 >