我转换了一个字符串
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
模块从电子邮件正文解析的字符串。
你知道是否有一种转换为可读字符的方法吗?
非常感谢!
答案 0 :(得分:2)
您在那里有一个quopri
(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'