【发布时间】:2015-07-26 15:45:02
【问题描述】:
我正在尝试使用 GSM 调制解调器执行 USSD 命令。
AT+CUSD=1,"*200#",15
我得到的结果是不可读的
"+CUSD: 0,"Æ·ÜNÓu9XŽt�¤å1:,?—u0Œt�ši7è,Óëizy®ƒ5ÓnÔL»Ai7½,w‡éé·;Ì.ÏAòòœvÓËs�ÖL»",15"
当我使用相同的 sim 在手机上尝试相同的 ussd 代码时,我得到了正确的结果,即
"Forfait: 909DA. Recharge:0.0DA Min gratuites: 0Min. Min 国际重演:0分钟”
将字符集 AT+CSCS 从 GSM 更改为 IRA 或 PCCP、PCDN、8859-1 不会改变响应,它是完全相同的响应
将 AT+CSCS 更改为十六进制会给我一个错误:
AT+CSCS="HEX"
AT+CUSD=1,"*200#",15
OK
+CUSD: 2,"Unexpected Data Value",15
+CUSD: 2,"Unexpected Data Value",15
ERROR
并将其更改为 UCS2 并调用 USSD 使我的调制解调器重新启动
AT+CSCS="UCS2"
AT+CUSD=1,"*200#",15
【问题讨论】:
-
这两个 Unexpected Data Value 错误是针对
*和#字符的,因为它们不是十六进制字符。当使用 AT+CSCS 更改字符编码时,它适用于我在回答中提到的 all 字符串。请参阅this answer 以获取启用 UCS2 编码的 UTF-8 设置示例。同样的错误也适用于 UCS2 的第二种情况,尽管重新启动的行为不如打印有用的“意外数据值”错误消息那么好。
标签: gsm at-command modem ussd