在Python 3中,使用changeSets
从硬件获取数据,并获取字节:socket.recv()
如何解码上面的str(或unicode),b'\x00\x004\x00\x08\x00\x00\x00The Delta Wavelength (nm) is currently set to 0.008.\xfc\xa9\xf1\xd2Mb\x80?'
?尝试了ascii',' latin-1',' utf-8'。没有用。
在Python 2.7中,'\x00\x004\x00\x08\x00\x00\x00The Delta Wavelength (nm) is currently set to 0.008.\xfc\xa9\xf1\xd2Mb\x80?'
有效,并获得unicode b'\x00\x004\x00\x08\x00\x00\x00The Delta Wavelength (nm) is currently set to 0.008.\xfc\xa9\xf1\xd2Mb\x80?'.decode('latin-1')
。 ascii,utf-8也没有工作。
P.S。我正在将Python 2.7代码转换为Python 3.6
答案 0 :(得分:1)
您需要Wat信息吗?因为如果你只需要这个部分:
The Delta Wavelength (nm) is currently set to 0.008.
然后你可以做类似的事情:
data = socket.recv()[8:60].decode("utf-8")
使用memoryview 或更快
data = memoryview(socket.recv())[8:60].decode("utf-8")
我假设您不需要硬件的元数据