读取二进制文件编码是一个比较麻烦的事情
我们在decode二进制文件时,是需要知道编码格式的,除了常见的utf-8,还有UCS-2-Little Endian(utf-16-le
)和UTF-8-BOM(utf-8-sig
)
如下是UCS-2-Little Endian的二进制文件前缀
如下是UTF-8-BOM的二进制文件前缀
做个判断,确定decode解码格式
if b'\xff\xfe'in res['bdata']:
print('UCS-2-Little Endian')
s = res['bdata'].decode("utf-16-le")
if b'\xef\xbb\xbf'in res['bdata']:
print('UTF-8-BOM')
s = res['bdata'].decode("utf-8-sig")