2016-11-02 2 views
0

У меня есть небольшая утилита приема SMS, у меня есть SMS-сообщения, которые я не могу понять, как декодировать его идентификатор отправителя, вот результат чтения сообщения в режиме PDU:декодирование идентификатора SENDER в sms-заголовке

+ CMGL: 0,1, 86 0791021197003899440ED0657A7A1E6687E93408610192016390004205000365030106440642062F002006270633062A064706440643062A0020064306440020062706440648062D062F0627062A0020062706440645062C06270646064A

и в текстовом режиме:

+ CMGL: 0, "REC READ", "1011161051159710897116" ,, "16/10/29,10: 36: 09 + 00" 06440642062F002006270633062A064706440643062A0020064306440020062706440648062D062F0627062A0020062706440645062C06270646064A

и я прочитал это сообщение через мобильный телефон и я нашел что буквенно-цифровой код отправителя «1011161051159710897116» равен «etisalat», который является именем поставщика услуг, я хочу понять, какую кодировку они используют. и как его декодировать?

ответ

1

Это кодируется как ASCII в виде десятичных полу-октетов:

1011161051159710897116 =

101 = & 65 = е

116 = & 74 = т

105 = & 69 = я

115 = & 73 = s

97 = & 61 = а

108 = & 6С = л

97 = & 61 = а

116 = & 74 = т

Для того, чтобы прочитать из данных PDU , вам нужно поменять полуоктеты, и если длина нечетная, вам нужно добавить дополнительный «F», чтобы даже получить нужную строку октета.

Спецификации для SMS PDU можно найти здесь: GSM 03.40

+0

хороший и полезный ответ, я стараюсь, чтобы голосовать, но моя репутация меньше чем 15, они отказались мой голос за вас. – saber

+0

Рад, что это помогло! –