我在使用 python 3 解码接收到的字节时遇到问题。我正在通过串行连接控制 arduino 并使用以下代码读取它:
import serial
arduino = serial.Serial('/dev/ttyACM0', baudrate=9600, timeout=20)
print(arduino.isOpen())
myData = arduino.readline()
print(myData)
我得到的结果看起来像b'\xe1\x02\xc1\x032\x82\x83\x10\x83\xb2\x80\xb0\x92\x0b\xa0'
或者b'\xe1\x02"\xe1\x00\x83\x92\x810\x82\xb2\x82\x91\xb2\n'
并试图通过通常的方式对其进行解码,但myData.decode('utf-8')
我得到了错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 1: invalid start byte
。我尝试了其他解码(ASCII、cp437、十六进制、utf-16),但总是面临同样的错误。
你有什么建议,我如何解码接收到的字节或arduino需要哪些解码?我已经尝试使用 for 循环逐个解码它,但我总是面临相同的错误消息。
有没有一种通用的方法来避免解码问题或找出我必须使用哪种解码?
提前致谢。