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

来源:互联网 发布:shell脚本语言入门知乎 编辑:程序博客网 时间:2024/05/17 01:56

 发中文短信

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~

 

原创粉丝点击