1. 程式人生 > >如何使用簡訊貓傳送中文簡訊

如何使用簡訊貓傳送中文簡訊

使用簡訊貓收發簡訊,原理是通過串列埠通訊傳送AT指令.當你傳送中文簡訊時,你會又喜悅又困惑,簡訊確實收到了,但是是亂碼的.本文介紹如何正確傳送中文簡訊.

請注意簡訊貓支援SMSText模式,才能通過串列埠通訊傳送AT指令的方式收發簡訊.如果不支援SMSText,可以使用GSMCommunication串列埠通訊,使用pdu編碼簡訊內容.Some advanced GSM modems like WaveCom and Multitech, support the SMStext mode. This mode allows you to send SMS messages using AT commands, withoutthe need to encode the binairy PDU field of the SMS first. This is done by theGSM modem

.

傳送中文簡訊的原理是設定16進位制模式,同時指定DCS為unicode編碼方式.接收中文簡訊也同樣如此.

AT

AT\r\r\nOK\r\n

設定modemSMS 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

設定modemhex 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;

        }

參考