GSM модем и отправка сообщений в UCS2 - C#
Формулировка задачи:
Доброго времени суток. Вопрос касается gsm-модема.
Допустим есть такой код:
Код такого вида работает, т.е. сообщение отправляется. Но есть одно НО. Переменная textMessage может содержать только латинские буквы и цифры. Если же там окажутся символы из кириллицы, то в сообщении придут только ????????????.
Пробовал переводить в UCS2, результата ноль. Переводил с помощью такого кода:
С пощью кода переводит в UCS2, но сообщение уже не отправляет. Пробовал переводить и номер телефона, и само сообщение.
Так вот вопрос, как же перевести в нужный формат? И скажите, что я делаю не так?
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();
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(); }
Решение задачи: «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"};
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д