我正在使用网络协议通过网络来回传输 OSC(开放声音控制消息)。
byte array
以和其他格式接收消息。我试图理解它的字节数组部分。
一个示例消息,在 ascii 中是
/track_0_volume/x "value" 0.238
该消息对应的字节数组是
b'/track_0_volume/x\x00\x00\x00,sf\x00value\x00\x00\x00>s\xb6F'
我可以看到/track_0_volume/x
后面跟着三个空字符的字节数组,然后是 ascii 值sf
,一个空字符,还有value
三个空字符,然后>s\xb6F
我不明白这些sf
字符是什么,也不知道>s\xb6F
最后如何表示 0.238
我相信,(我对 OSC 消息格式不太熟悉)s
表明这个词value
是字符串类型(而不是int
or float
),下一个值是 a float
(即value
and .238
)
对我来说最令人困惑的部分是最后的小数部分:当我尝试解码字节数组的那部分时,我得到一个UnicodeDecodeError: 'utf-8 can't decode byte 0xb6
我也用过struct.unpack('f', b'\b6F')
,没有成功。有人知道如何解码吗?