GSM модем и отправка сообщений в UCS2 - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Вопрос касается gsm-модема. Допустим есть такой код:
serialPort1.Open();
serialPort1.Write("AT\r\n");
Thread.Sleep(1000);
serialPort1.Write("AT+CMGF=1");
Thread.Sleep(1000);
serialPort1.Write("AT+CMGS="+phoneNumber);
Thread.Sleep(1000);
serialPort1.Write(textMessage+"x1A");
Thread.Sleep(1000);
serialPort1.Close();
Код такого вида работает, т.е. сообщение отправляется. Но есть одно НО. Переменная textMessage может содержать только латинские буквы и цифры. Если же там окажутся символы из кириллицы, то в сообщении придут только ????????????. Пробовал переводить в UCS2, результата ноль. Переводил с помощью такого кода:
public string txtInUCS2 = "";
private void ConvertRusToUCS2(string txtInRus)
     {
         String strAlphabet  = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщэюяABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'-* :;)(.,!=_";
         String[] ArrayUCSCode = new String[137]{            
         "0410","0411","0412","0413","0414","0415","00A8","0416","0417",
         "0418","0419","041A","041B","041C","041D","041E","041F","0420",
         "0421","0422","0423","0424","0425","0426","0427","0428","0429",
         "042C","042A","042D","042E","042F","0430","0431","0432","0433",
         "0434","0435","00B8","0436","0437","0438","0439","043A","043B",
         "043C","043D","043E","043F","0440","0441","0442","0443","0444",
         "0445","0446","0447","0448","0449","044D","044E","044F","0041",
         "0042","0043","0044","0045","0046","0047","0048","0049","004A",
         "004B","004C","004D","004E","004F","0050","0051","0052","0053",
         "0054","0055","0056","0057","0058","0059","005A","0061","0062",
         "0063","0064","0065","0066","0067","0068","0069","006A","006B",
         "006C","006D","006E","006F","0070","0071","0072","0073","0074",
         "0075","0076","0077","0078","0079","007A","0030","0031","0032",
         "0033","0034","0035","0036","0037","0038","0039","0027","002D",
         "002A","0020","003A","003B","0029","0028","002E","002C","0021",
         "003D","005F"};
         StringBuilder UCS = new StringBuilder(txtInRus.Length);
         Int32 intLetterIndex = 0;
         for (int i = 0; i < txtInRus.Length; i++)
            {
                intLetterIndex = strAlphabet.IndexOf(txtInRus[i]);
                if (intLetterIndex != -1)
                   {
                       UCS.Append(ArrayUCSCode[intLetterIndex]);
                   }
             }
            txtInUCS2 = UCS.ToString();
     }
С пощью кода переводит в UCS2, но сообщение уже не отправляет. Пробовал переводить и номер телефона, и само сообщение. Так вот вопрос, как же перевести в нужный формат? И скажите, что я делаю не так?

Решение задачи: «GSM модем и отправка сообщений в UCS2»

textual
Листинг программы
         String[] ArrayUCSCode = new String[137]{            
         "0410","0411","0412","0413","0414","0415","00A8","0416","0417",
         "0418","0419","041A","041B","041C","041D","041E","041F","0420",
         "0421","0422","0423","0424","0425","0426","0427","0428","0429",
         "042C","042A","042D","042E","042F","0430","0431","0432","0433",
         "0434","0435","00B8","0436","0437","0438","0439","043A","043B",
         "043C","043D","043E","043F","0440","0441","0442","0443","0444",
         "0445","0446","0447","0448","0449","044D","044E","044F","0041",
         "0042","0043","0044","0045","0046","0047","0048","0049","004A",
         "004B","004C","004D","004E","004F","0050","0051","0052","0053",
         "0054","0055","0056","0057","0058","0059","005A","0061","0062",
         "0063","0064","0065","0066","0067","0068","0069","006A","006B",
         "006C","006D","006E","006F","0070","0071","0072","0073","0074",
         "0075","0076","0077","0078","0079","007A","0030","0031","0032",
         "0033","0034","0035","0036","0037","0038","0039","0027","002D",
         "002A","0020","003A","003B","0029","0028","002E","002C","0021",
         "003D","005F"};

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы