解析十六进制文件并逐字节解码
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')。然后你可以用十六进制值处理你的文件。
我有一个扩展名为 .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')。然后你可以用十六进制值处理你的文件。