Python 串口读取数据 UnicodeDecodeError: 'utf-8' 编码错误解决方法
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))
原文地址: https://www.cveoy.top/t/topic/nWGq 著作权归作者所有。请勿转载和采集!