Python 3解码字符串

时间:2017-06-01 05:27:57

标签: python python-3.x unicode

我知道这可能是一个重复的问题,但我找不到解决方案。

简而言之,我有一个字符串,我想解码:

raw = "\x94my quote\x94"
string = decode(raw)

期望从字符串

'"my quote"'

最后一点需要注意的是,我正在使用Python 3,因此raw是unicode,因此已经解码。鉴于此,我到底需要做什么来解码" "\x94"个字符?

3 个答案:

答案 0 :(得分:4)

我不知道你是否愿意这样做,但这有效:

some_binary = a = b"\x94my quote\x94"
result = some_binary.decode()

你得到的结果...... 如果您不知道选择哪种编码,可以使用chardet.detect

import chardet
chardet.detect(some_binary)

答案 1 :(得分:3)

string = "\x22my quote\x22"
print(string)

您无需解码,Python 3会为您执行此操作,但您需要双引号的正确控制字符"

如果你有不同的字符集,看起来你有Windows-1252,那么你需要解码该字符集中的字节字符串:

str(b"\x94my quote\x94", "windows-1252")

如果您的字符串不是字节字符串,则必须先对其进行编码,我发现latin-1编码可以正常工作:

string = "\x94my quote\x94"
str(string.encode("latin-1"), "windows-1252")

答案 2 :(得分:1)

你这样试试吗?我认为你需要调用decode作为byte类的方法,并传递utf-8作为参数。在字符串前添加b

string = b"\x94my quote\x94"
decoded_str = string.decode('utf-8', 'ignore')
print(decoded_str)