【发布时间】:2014-09-30 21:51:02
【问题描述】:
我正在使用网络协议通过网络来回传输 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 或 float)和下一个值是float(即value和.238)
对我来说最令人困惑的部分是最后的小数部分:当我尝试解码字节数组的那部分时,我得到一个UnicodeDecodeError: 'utf-8 can't decode byte 0xb6
我也使用了struct.unpack('f', b'\b6F'),但没有成功。有人知道如何解码吗?
【问题讨论】: