Python串口读取数据出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 错误解决方案
这个错误通常是由于串口传输的数据编码格式和Python解码格式不一致导致的。解决方法如下:
- 在打开串口时指定编码格式,例如:
ser = serial.Serial('COM1', 9600, timeout=1, encoding='utf-8')
- 在读取数据时使用try-except语句捕获异常,并指定解码格式,例如:
try:
data = ser.readline().decode('utf-8')
except UnicodeDecodeError:
pass
- 如果无法确定串口传输数据的编码格式,可以尝试使用Python自带的chardet库自动检测编码格式,例如:
import chardet
try:
data = ser.readline()
encoding = chardet.detect(data)['encoding']
data = data.decode(encoding)
except UnicodeDecodeError:
pass
以上是解决这个错误的几种方法,根据具体情况选择适合自己的方法即可。
原文地址: https://www.cveoy.top/t/topic/nWGb 著作权归作者所有。请勿转载和采集!