使WaveCom CDMA猫发送中文短信的乱码问题

 发中文短信

CDMA发中文短消息不是采用PDU格式,而是直接发送其Unicode代码

eg . 发送中文短消息您好其相应Unicode编码:0x60a8 0x597d
 AT+WSCL=6,4<CR>
 AT+CMGS="13600193264"
短消息编码长度(此处为
4)”<CR>
 60A8597D <ctrl-Z>
 
返回代码:

 +CMGS
N 表示成功发出,N为序号。
   
:程序中发送的时候应该是发送数据0x60,0xa8,0x59,0x7d,对于中文短消息其中的控制字符也必须用其UNCODE代码表示。消息内容的结束则以结束符来做标记,所以它的结束符也应该是UNICODE格式的。即在超级终端中用此种方式是无法发送成功的,因为从键盘键入的<ctrl-Z>并非UNICODE格式,仅ASCII码而已。在程序中正确的结束符应该是0x00 0x1a

 

原文中不清楚的问题是:

到底发什么内容过去?

1.    0x600xa80x590x7d0x000x1a

2.    60a8597d001a

3.    (char)0x60+(char)0xa8+(char)0x59+(char)0x7d+(char)0x00+(char)1a

 

经过反复实验,在wxf0204兄的指导下,终于发送成功第一个可以看到中文字的短信

要求使用第3种数据,也就是那种显示在超级终端里是乱码的那种

[注:在指定了长度的情况下,不需要添加ctrl+Z]

 

但是,发现还有部分数据仍然是乱码,仔细查看,发现这些字符(如(char)0xa8),在大于0x80的情况下都是乱码,于是又去猜测,搜索往串口写大于128(对应0x80)的字符,原来,要使用二进制,才能写入。

 

总算是搞定啦,三天时间,my god~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值