如何从字节转换为字符串?
How to convert from bytes to string?
我在 Python 中使用 OpenCV 库来检测人脸并计算人脸周围形成的矩形 (X,Y) 的中心点,以控制连接到 arduino 的伺服系统。我将它转换为字节,因为 python 使用 unicode,就像这样
data = "X{0:f}Y{1:f}".format(xx, yy)
bdata = b'data'
arduino.write(bdata)
我必须通过串行通信在arduino程序中接收这些字节,它正在接收。问题是我无法将其解码回字符串,因此程序可以读取我已经尝试并搜索了 google 阅读了很多论坛,但我在这方面一无所知,因为我有机械工程背景,所以总菜鸟。我什至不知道这是否可能。提前致谢!
bdata = b'data'
这是创建一个由四个字节组成的字符串,以 ASCII 编码表示字符 d
、a
、t
、a
。这可能不是你的意思!
您应该做的是使用 encode
函数将 data
字符串编码为字节。这需要您考虑编码;可能 ASCII 适合这种情况,因为您没有任何“特殊”字符:
bdata = data.encode('ascii')
作为一般提示,在 Python 解释器中进行实验可能很有用,例如:
>>> xx = 4.3
>>> yy = 7.1
>>> data = "X{0:f}Y{1:f}".format(xx, yy)
>>> bdata = b'data'
>>> bdata
b'data'
>>> bdata = data.encode('ascii')
>>> bdata
b'X4.300000Y7.100000'
我在 Python 中使用 OpenCV 库来检测人脸并计算人脸周围形成的矩形 (X,Y) 的中心点,以控制连接到 arduino 的伺服系统。我将它转换为字节,因为 python 使用 unicode,就像这样
data = "X{0:f}Y{1:f}".format(xx, yy)
bdata = b'data'
arduino.write(bdata)
我必须通过串行通信在arduino程序中接收这些字节,它正在接收。问题是我无法将其解码回字符串,因此程序可以读取我已经尝试并搜索了 google 阅读了很多论坛,但我在这方面一无所知,因为我有机械工程背景,所以总菜鸟。我什至不知道这是否可能。提前致谢!
bdata = b'data'
这是创建一个由四个字节组成的字符串,以 ASCII 编码表示字符 d
、a
、t
、a
。这可能不是你的意思!
您应该做的是使用 encode
函数将 data
字符串编码为字节。这需要您考虑编码;可能 ASCII 适合这种情况,因为您没有任何“特殊”字符:
bdata = data.encode('ascii')
作为一般提示,在 Python 解释器中进行实验可能很有用,例如:
>>> xx = 4.3
>>> yy = 7.1
>>> data = "X{0:f}Y{1:f}".format(xx, yy)
>>> bdata = b'data'
>>> bdata
b'data'
>>> bdata = data.encode('ascii')
>>> bdata
b'X4.300000Y7.100000'