编码问题:解码Python中的Quoted-Printable字符串

时间:2017-05-06 19:37:27

标签: python encoding decoding quoted-printable

在Python中,我得到了一个用Quoted-Printable encoding

编码的字符串
mystring="=AC=E9"

此字符串应打印为

é

所以我想解码它并用UTF-8编码,我想。我明白通过

可以实现某些目标
import quopri
quopri.decodestring('=A3=E9')

然而,我完全迷失了。你会如何解码/编码这个字符串才能正确打印?

2 个答案:

答案 0 :(得分:1)

试试这个。

import quopri
mystring="=AC=E9"
decoded_string=quopri.decodestring(mystring)
print(decoded_string.decode('windows-1251'))

答案 1 :(得分:1)

import quopri

编码:

您可以使用quopri.encodestring()将字符'é'编码为Quoted-Printable。它需要一个字节对象,并返回经过QP编码的字节对象。

encoded = quopri.encodestring('é'.encode('utf-8'))
print(encoded)

它显示b'= C3 = A9'(而不是问题中指定的“ = AC = E9”或“ = A3 = E9”)

解码:

mystring = '=C3=A9'
decoded_string = quopri.decodestring(mystring)
print(decoded_string.decode('utf-8'))

quopri.decodestring()返回一个 bytes 对象,该对象以utf-8编码(可能是您想要的)。如果要打印字符'é',请使用.decode()解码 utf-8 编码的字节对象,然后将'utf-8'作为参数传递。