解析十六进制文件并逐字节解码

parse hex file and decode byte by byte

我有一个扩展名为 .brt 且十六进制值在 00 - FF 范围内的十六进制文件。 我想解析文件并在命令提示符中逐字节打印值。

我尝试了以下代码行:

file = open("file.brt", encoding='utf-8')
data = file.read()

这给我的错误是:

Exception has occurred: UnicodeDecodeError
'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

我知道错误是因为该值大于 128。然后我尝试使用 utf-16,这给出了一些随机值。 然后我尝试了下面的代码行:

file = open("file.brt", encoding='ANSI')
data = file.read()
for line in data:
    for char in line:
        print(char.encode('utf-8').hex())

以上代码正在解析数据,但如果十六进制值大于 128,则打印一些随机值。例如,如果十六进制值为 FF,则它会打印 c3bf

您可以尝试以二进制模式打开文件,方法是将打开行更改为 open('file', 'b')。然后你可以用十六进制值处理你的文件。