我正在阅读带有 big5 编码字符的二进制文件。当我读取一个双字节序列时,它们会显示为一个字节列表,例如
>>> bytes = ['0xa6', '0x7b']
如果我修改这些字符串字节:
>>> big5_str = ''
>>> for hexVal in bytes:
>>> newHexVal = '\\' + hexVal[1:]
>>> big5_str += newHexVal
所以它们显示为:
>>> print big5_str
>>> '\xa6\x7b'
但 big5_str 实际上在字符串中仍有转义符 '\':
>>> big5_str
>>> '\\xa6\\x7b'
如果我使用 big5 解码,我只会得到相同的字符串(由于双反斜杠):
>>> print byte_string.decode('big5')
>>> '\xa6\x7b'
如果我将字节序列显式编码为十六进制值:
>>> bytes2 = '\xa6\x7b'
>>> print bytes2.decode('big5')
>>> 州
我的问题是,如何读取这些字节,将它们格式化为 '\x**' 格式化它们,以便使用非转义反斜杠将它们识别为字节,而不是字符串?