python 浅谈serial与stm32通信的编码问题

yipeiwu_com5年前Python基础

参考链接:

decode错误处理方案

可选用的编码

使用环境:

ubuntu18.04

python3.65

问题点:

使用pyserial与stm32通信,使用如下形式的编码进行write

 (input_s + '\r\n').encode('utf-8')

但是在接受stm的信息的时候使用'utf-8'解码会出现乱码问题

在查了可用编码后,发现可能是中文无法解码的问题,使用'gbk'--统一汉语进行解码,可以解决乱码问题。

 utf-8虽然是通用语言编码标准,但中文出现乱码可以使用有针对性的'gbk'进行解码。

除此之外,python官方也有一种解决办法:

bytearray.decode(encoding="utf-8", errors="strict")

返回从给定 bytes 解码出来的字符串。 默认编码为 'utf-8'。 可以给出 errors 来设置不同的错误处理方案。 errors 的默认值为 'strict',表示编码错误会引发 UnicodeError。 其他可用的值为 'ignore', 'replace' 以及任何其他通过 codecs.register_error() 注册的名称,请参阅 错误处理方案 小节。 要查看可用的编码列表,请参阅 标准编码 小节。

我们可以看到把errors关键字设置为ignore也可以解决编码问题。

以上这篇python 浅谈serial与stm32通信的编码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现的多线程端口扫描功能示例

python实现的多线程端口扫描功能示例

本文实例讲述了python实现的多线程端口扫描功能。分享给大家供大家参考,具体如下: 下面的程序给出了对给定的ip主机进行多线程扫描的Python代码 #!/usr/bin/env...

在OpenCV里使用特征匹配和单映射变换的代码详解

在OpenCV里使用特征匹配和单映射变换的代码详解

前面已经学习特征查找和对应匹配,接着下来在特征匹配之后,再使用findHomography函数来找出对应图像的投影矩阵。首先使用一个查询图片,然后在另外一张图片里找到目标对象,其实就是想...

Python中模块pymysql查询结果后如何获取字段列表

前言 大家在使用pymysql的时候,通过fetchall()或fetchone()可以获得查询结果,但这个返回数据是不包含字段信息的(不如php方便)。查阅pymysql源代码后,其实...

Python队列、进程间通信、线程案例

进程互斥锁 多进程同时抢购余票 # 并发运行,效率高,但竞争写同一文件,数据写入错乱 # data.json文件内容为 {"ticket_num": 1} import json...

Python 实例方法、类方法、静态方法的区别与作用

Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。 首先,这三种方法都定义在类中。下面我先简单...