我知道这可能是一个重复的问题,但我找不到解决方案。
简而言之,我有一个字符串,我想解码:
raw = "\x94my quote\x94"
string = decode(raw)
期望从字符串
'"my quote"'
最后一点需要注意的是,我正在使用Python 3,因此raw
是unicode,因此已经解码。鉴于此,我到底需要做什么来解码" "\x94"
个字符?
答案 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)