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