通过 USSD 查询余额时出错

Error on checking balance via USSD

我一直在尝试通过 3g 调制解调器通过 AT 命令检查我的余额,但似乎卡住了。

设备信息如下:

制造商:高通公司
型号:M6281
修订:SSD_M6281A-0.0.1 1 [2008 年 10 月 2 日 07:00:00]

调制解调器具有 USSD 功能(已公布并出现在出厂安装的仪表板中)。

我正在通过 putty 连接到 COM4 串行端口,这是我的调制解调器应用程序端口。所有 AT 命令都工作正常,但我在通过 putty 发出以下命令时遇到错误:

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

这个returns一个简单的"ERROR"。 *111# 是我的运营商的余额检查代码。我怀疑某处存在格式错误,但我不知道在哪里。

注意:如果我发出空白的 ussd 命令:

AT+CUSD=1,"",15 

然后我得到一个 OK(虽然我后来得到一个响应 +CME ERROR:重试操作)......但是如果我在引号内写任何东西,它 returns 一个 "ERROR"。

您试过通过AT+CUSD=1,"*111#"发出请求吗? (没有最后一个参数) AT 命令有时会因制造商的实施而有所不同。

好的,我终于找到解决这个问题的方法了。显然编码有问题。这是我所做的:

AT+CSCS="GSM" // change character set to GSM
AT+CUSD=1,"*111#",15 // Issued balance check ussd code

现在可以正常使用了。

默认编码是UCS2,如果有人可以分享如何在putty中将ussd编码转换为UCS2编码,我将不胜感激。