请高手赐教短信发送乱码问题。
我用。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格式会把高位转成?号或者乱码。如果做过短信发送的能否告诉我怎么发送短息你。我所有转码都试过 都不行。如果不愿意给代码给思路也行。
C# System.Text.Encoding.Unicode.GetBytes("中文")在转码的时候高低位换位。所以你得写个for循把高低位换回来。那样就行了。希望对哪些没做过串口发送电信短信的朋友有帮助
www.llt.com 肥猫
很具体的不知道,但把转成ASCII的BYte串的?位挨个去掉能行吗.
你是会所把高位的数组删掉?
楼主发帖前没看看园子里关于短信猫的介绍么
不知道你说的华为EM660这个是一台短信猫设备还是无线上网卡
如果这个设备通过虚拟串口发送短信,而又带有发送短信的客户端,你可以通过串口监视工具,监视他的串口指令,从而更改你的串口指令
再一个,微软提供的那个serialPort1控件其实不太稳定,很多时候很少用。
发送短信建议使用短信猫,3G上网卡之类的不太靠谱
公司要求,不是我能决定了。发现还可以。毕竟可以控制。