如何格式化从字符串到十六进制值的字节

时间:2013-12-08 17:58:08

标签: python encoding string-formatting big5

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

0 个答案:

没有答案
相关问题