如何解码Python 3中的后续字节

时间:2018-05-24 06:56:47

标签: string python-3.x unicode

在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

1 个答案:

答案 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")

我假设您不需要硬件的元数据