首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GSM调制解调器上运行USSD命令(可能编码错误)

在GSM调制解调器上运行USSD命令(可能编码错误)
EN

Stack Overflow用户
提问于 2015-07-26 15:45:02
回答 2查看 2.6K关注 0票数 1

我试图使用GSM调制解调器执行USSD命令。

代码语言:javascript
复制
AT+CUSD=1,"*200#",15

我得到的结果是不可读的

"+CUSD: 0,“埃埃姆·N·N u 9XŽt�\1:,-u0Œt�ši7è,ƒ5 L?Ai7.5,Wé‡é·;Aœ诉‡és�L”,15“

当我使用相同的sim在手机上尝试相同的ussd代码时,我得到了一个正确的结果,即

“福费特:909 Min .里查奇:0.0DA,最低工资:0分钟.国际储备:0分钟.”

将字符集AT+CSCS从GSM更改为IRA或PCCP,PCDN,8859-1并不会改变响应--它完全是相同的响应。

将AT+CSCS更改为十六进制会给我带来一个错误:

代码语言:javascript
复制
AT+CSCS="HEX"
AT+CUSD=1,"*200#",15 

OK
+CUSD: 2,"Unexpected Data Value",15
+CUSD: 2,"Unexpected Data Value",15
ERROR

并将其更改为UCS2并调用USSD使我的调制解调器重新启动

代码语言:javascript
复制
AT+CSCS="UCS2"
AT+CUSD=1,"*200#",15 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-27 13:10:43

AT+CUSD命令是以27.007指定的,未经请求的结果代码的格式被定义为+CUSD: <m>[,<str>,<dcs>]

从您收到的回复中可以看到,<m>0<dcs>15,此外还有<str>的胡言乱语,这并不是简单地直接映射到AT+CSCS字符编码;还有一个完整的部分专门解释它的表示形式,您必须进一步研究。

查找27.007中引用的23.038标准,<dcs>值15映射到未指定的语言,但阅读上面的文本似乎也与GSM 7位默认字母表相同。

因此,是的,您对编码问题的怀疑是正确的,不幸的是,这些标准并不是非常直观的,因此您必须深入研究。

为了调试这一点,我将首先设置AT+CSCS="HEX"并验证接收到的数据在解码时是否有意义,然后要么以可用的格式显示它,要么自己从软件中显式地解码它(但请注意,从那时起,更改AT+CSCS将应用于所有字符串,包括希望稍后将编码更改为其他.)的AT+CSCS<chset>参数。

票数 3
EN

Stack Overflow用户

发布于 2018-10-09 19:52:50

AT+CMGF=0

AT+CSCS=HEX

AT+CUSD=1,"*123#",15

获取结果并将ussd pdu转换为文本

python:https://pypi.org/project/PDUUSSDConverter/

直接回答。祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31638873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档