首页 新闻 会员 周边

高分悬赏C#控制虚拟串口(华为EM660)发送中文短信问题(在线等待)

0
悬赏园豆:100 [已解决问题] 解决于 2013-01-21 11:53

请高手赐教短信发送乱码问题。

我用。net控件serialPort1 发送短信。

serialPort1.WriteLine("AT^HSMSSS=0,0,6,0\r");----6表示是UNICODE编码1表示ASCII
System.Threading.Thread.Sleep(1000);
serialPort1.Write("AT^HCMGS=\"1359048752*\"\r");---
serialPort1.Write("0x4E00");----中文一的UNICODE编码
serialPort1.Write(((char)26).ToString() + "\r");---结束符号ctrl-z\r

当发送短信的时候手机乱码 可是AT^HSMSSS=0,0,1,0则是0x4E00.网上查询了如果用ASCII串口默认是ASCIIEncoding格式会把高位转成?号或者乱码。如果做过短信发送的能否告诉我怎么发送短息你。我所有转码都试过 都不行。如果不愿意给代码给思路也行。

问题补充:

sms发送中文怎么发送?

深圳_猫仔的主页 深圳_猫仔 | 初学一级 | 园豆:16
提问于:2013-01-19 17:03
< >
分享
最佳答案
0

C#  System.Text.Encoding.Unicode.GetBytes("中文")在转码的时候高低位换位。所以你得写个for循把高低位换回来。那样就行了。希望对哪些没做过串口发送电信短信的朋友有帮助

                                                                        www.llt.com 肥猫

深圳_猫仔 | 初学一级 |园豆:16 | 2013-01-21 11:51
其他回答(2)
0

很具体的不知道,但把转成ASCII的BYte串的?位挨个去掉能行吗.

收获园豆:50
林Lin☆☆ | 园豆:260 (菜鸟二级) | 2013-01-21 08:30

你是会所把高位的数组删掉?

支持(0) 反对(0) 深圳_猫仔 | 园豆:16 (初学一级) | 2013-01-21 09:13
0

楼主发帖前没看看园子里关于短信猫的介绍么

 

不知道你说的华为EM660这个是一台短信猫设备还是无线上网卡

如果这个设备通过虚拟串口发送短信,而又带有发送短信的客户端,你可以通过串口监视工具,监视他的串口指令,从而更改你的串口指令

再一个,微软提供的那个serialPort1控件其实不太稳定,很多时候很少用。

发送短信建议使用短信猫,3G上网卡之类的不太靠谱

 

 

 

收获园豆:50
澜紫癜青 | 园豆:313 (菜鸟二级) | 2013-01-21 11:34

公司要求,不是我能决定了。发现还可以。毕竟可以控制。

支持(0) 反对(0) 深圳_猫仔 | 园豆:16 (初学一级) | 2013-01-21 11:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册