Python 3 解码字符串

新手上路,请多包涵

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

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

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

预期来自字符串

'"my quote"'

最后要注意的是,我正在使用 Python 3,所以 raw 是 unicode,因此已经解码。鉴于此,我究竟需要做什么来“解码” "\x94" 字符?

原文由 rmorshea 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 543
2 个回答
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")

原文由 CodeMonkey 发布,翻译遵循 CC BY-SA 3.0 许可协议

我不知道你是不是这个意思,但这有效:

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

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

 import chardet
chardet.detect(some_binary)

原文由 Yuval Pruss 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题