Python 串口读取数据 UnicodeDecodeError: 'utf-8' codec 错误解决方法
Python 串口读取数据 UnicodeDecodeError: 'utf-8' codec 错误解决方法
在使用 Python 从串口读取数据时,经常会遇到 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte 错误。这是因为串口传输的数据可能并非 UTF-8 编码格式,导致无法正确解码。
解决方法
除了 utf8 以外,还可以尝试使用其他编码格式进行解码,例如 gbk、gb2312 等。具体可以根据串口传输数据的编码格式进行选择。可以使用如下代码进行解码:
ser = serial.Serial(port, baudrate)
while True:
data = ser.readline()
try:
line = data.decode('utf-8')
except UnicodeDecodeError:
line = data.decode('gbk')
print(line.strip())
这段代码首先尝试使用 utf-8 编码解码数据,如果出现错误,则尝试使用 gbk 编码进行解码。您也可以根据实际情况修改代码中的编码格式。
注意:
- 确保您选择的编码格式与串口传输数据的实际编码格式一致。
- 如果您不确定数据的编码格式,可以尝试使用多种编码格式进行解码,直到找到合适的编码格式。
原文地址: https://www.cveoy.top/t/topic/nWGh 著作权归作者所有。请勿转载和采集!