今天遇到一个情况,收到下位机的一串数据:
收到的数据:b'\x06\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09'
原始数据: 6 7 8 9
于是就很自然的拿去.decode('utf-8')
结果发现是解码出来的是一堆乱码,然后又试了GBK
ascii
发现都不行。
解决方法
(其实这就是16进制数,\00用来替代空格)
k = str(data.hex())
answer = k.split('0')
print(answer)
如何查看二进制数的解码类型
import chardet
a = b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x91\x80!'
print(chardet.detect(a))
# {'encoding': 'utf-8', 'confidence': 0.87625, 'language': ''}