读取二进制文件编码是一个比较麻烦的事情

我们在decode二进制文件时,是需要知道编码格式的,除了常见的utf-8,还有UCS-2-Little Endian(​​utf-16-le​​​)和UTF-8-BOM(​​utf-8-sig​​)

如下是UCS-2-Little Endian的二进制文件前缀

python读取二进制文件 \xff\xfe \xef\xbb\xbf_编码格式


如下是UTF-8-BOM的二进制文件前缀

python读取二进制文件 \xff\xfe \xef\xbb\xbf_decode_02


做个判断,确定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")