使用python控制GPRS模块,发送中文短信的时候,会出现乱码。而直接使用串口调试助手就不会出现这种问题。
现象:

短信收到的中文都是乱码。
使用串口抓包助手,查看实际发送的十六进制报文:

可以看到,“号”这个中文被编码成了E58FB7
而通过正常串口调试助手发送的时候,抓包的报文为:

“号”的编码是BA C5
通过网站 https://www.qqxiuzi.cn/bianma/zifuji.php

可以看到,一个采用的PYTHON默认采用的是UTF-8编码方式。
尝试1
将命令改为:

短信收到的内容为:
b’\xba\xc5\xd7\xb0…’
仍旧不是想要的结果。
尝试2
修改串口发送函数里面内容,message整体传输进去之后,在进行转

本文介绍了在使用Python通过串口控制GPRS模块发送中文短信时遇到的乱码问题及其解决方案。问题在于Python默认的UTF-8编码与GPRS模块期望的GB2312编码不一致。尝试1中,使用UTF-8编码发送导致乱码;尝试2中,将消息整体转换为GB2312编码后发送,解决了乱码问题。总结表明,需要在数据发送到串口前完成正确的编码转换。
最低0.47元/天 解锁文章
303

被折叠的 条评论
为什么被折叠?



