0

我正在阅读带有 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**' 格式化它们,以便使用非转义反斜杠将它们识别为字节,而不是字符串?

4

0 回答 0