使用短信猫收发短信,原理是通过串口通信发送AT指令.当你发送中文短信时,你会又喜悦又困惑,短信确实收到了,但是是乱码的.本文介绍如何正确发送中文短信.
AT
AT\r\r\nOK\r\n
设置modem为SMS text mode
AT+CMGF=1<ENTER>
AT+CMGF=1\r\r\r\nOK\r\n
查询当前参数
AT+CSMP?<ENTER>
AT+CSMP?\r\r\r\n+CSMP:1,167,0,0\r\n\r\nOK\r\n
displays the codepages supported by the modem
AT+CSCS=?
AT+CSCS=?\r\r\n+CSCS:(\"GSM\",\"PCCP437\",\"CUSTOM\",\"HEX\")\r\n\r\nOK\r\n
设置modem为hex mode
AT+CSCS="HEX"<ENTER>
AT+CSCS=\"HEX\"\r\r\r\nOK\r\n
specify the correct DCS (Data Coding Scheme) forUnicode messages, which is 0x08
AT+CSMP=1,167,0,8<ENTER>
AT+CSMP=1,167,0,8\r\r\r\nOK\r\n
设置sms发送的手机号码
AT+CMGS="+31638740161"<ENTER>
"AT+CMGS=\"+31638740161\"\r\r\r\n>"
以unicode编码发送SMS
6d4b8bd5<CTRL-Z>
"\r\n>"
测试
C# unicode编码方法
public staticstring ConvertToUTF(string input_text)
{
string _out = String.Empty;
char[] _chars =input_text.ToCharArray();
foreach (char c in _chars)
{
_out +=((Int16)c).ToString("X4");
}
return _out;
}
参考
Howto Send, Receive and Delete SMS with IOT Devices (Arduino and GSM Shield)
原文地址:http://blog.csdn.net/soliddream66/article/details/45968855