我正在通过tcp从传感器节点发送到我的tcp服务器。接收到的原始数据如下所示:
b'a\x10vu\x87%\x00x\x0c\xc7\x03\x01\x00\x00\x00\x00\x00和\x00\x00\x00\x00\x00\x00\x00
当尝试使用utf-8对其进行解码时,我收到以下错误。代码:
my_variable = b'A\x10Vu\x87%\x00x\x0c\xc7\x03\x01\x00\x00\x00\x00&\x00\x00\x00\x00\x00\x00\x00\x00'
print(my_variable.decode('utf-8'))
错误:
print(my_variable.decode('utf-8'))unicodedecodeerror:'utf-8'编解码器无法解码位置4中的字节0x87:无效的起始字节
所以问题是负载显然包含非ascii格式的字符。
我怎样才能把这个有效载荷解码成人类可读的东西?
有效负载描述可在第32页的此处找到。p20显示了一个tcp连接示例,但没有对有效负载进行解码。
2条答案
按热度按时间yi0zb3m41#
以文档为基础是不正确的
human readable
你们不应该对它进行解码,但你们应该编写特殊的代码,将每一个值从十六进制转换成整数,并最终将其转换成带有额外值的字符串——即版本号中的点。这里是用于从有效负载开始值的代码
结果:
gajydyqb2#
您可以在python提示符中找到答案。事实上,我是用
dir(my_variable)
: