Python学习之道-错误笔记

Python学习之道-错误笔记

    • UnicodeDecodeError: 'utf-8' codec can't decode byte
      • 问题引出
      • 问题分析

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte

问题引出

在用Python编写自己的上位机脚本时,从串口读取到的bytes要转成str显示。
由于存在汉字,使用data.decode('utf-8')时提示错误

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 2: invalid continuation byte

问题分析

该情况是由于出现了无法进行编码转换的 bytes数据 造成的,单片机使用的汉字编码是GB2312,而python脚本中使用是 Unicode编码
参考:
深入了解单片机与汉字编码…… - MCU综合技术区 单片机论坛
因此改成data.decode('GB2312')
对于UnicodeDecodeError: 'utf-8' codec can't decode byte错误,参考以下博文的方法
Python3解决UnicodeDecodeError: ‘utf-8’ codec can’t decode byte…问题 终极解决方案 - wotchin的技术博客 - CSDN博客
1、修改字符集参数,一般这种情况出现得较多是在国标码(GBK)和utf8之间选择出现了问题。
2、出现异常报错是由于设置了decode()方法的第二个参数errors为严格(strict)形式造成的,因为默认就是这个参数,将其更改为ignore等即可。例如:
line.decode(“utf8”,“ignore”)

你可能感兴趣的:(Python学习)