Python 从串口按行读取数据出现错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

问题出在读取串口数据时使用了错误的编码格式。可以尝试将编码格式改为'gbk'或者'utf-16'等其他编码格式进行尝试。

方法一:更改编码格式

下面是一个读取串口数据并设置编码格式为'gbk'的示例代码:

import serial

ser = serial.Serial('COM1', 9600, timeout=1)

while True:
    data = ser.readline().decode('gbk')
    print(data)

方法二:使用 chardet 库自动检测编码格式

如果还是出现编码错误,可以尝试使用 Python 自带的 chardet 库来自动检测编码格式:

import serial
import chardet

ser = serial.Serial('COM1', 9600, timeout=1)

while True:
    data = ser.readline()
    encoding = chardet.detect(data)['encoding']
    print(data.decode(encoding))
Python 串口读取数据 UnicodeDecodeError: 'utf-8' 编码错误解决方法

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

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