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 编码进行解码。您也可以根据实际情况修改代码中的编码格式。

注意:

  • 确保您选择的编码格式与串口传输数据的实际编码格式一致。
  • 如果您不确定数据的编码格式,可以尝试使用多种编码格式进行解码,直到找到合适的编码格式。
Python 串口读取数据 UnicodeDecodeError: 'utf-8' codec 错误解决方法

原文地址: https://www.cveoy.top/t/topic/nWGh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录