Python学习之道-错误笔记
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…问题 终极解决方案 - w