Как декодировать UDH на входящем (MO) SMS, отправленном через ClickaTell (интересный вызов для всех - опыт SMS не требуется) - PullRequest
0 голосов
/ 06 ноября 2011

Фон такой: я использую ClickaTell с арендованным номером для получения входящих текстовых сообщений SMS.Я пишу некоторый код, чтобы собрать воедино составные / составные SMS.Для этого мне нужно извлечь информацию из «заголовка пользовательских данных» или UDH.Формат UDH описан здесь: http://en.wikipedia.org/wiki/Concatenated_SMS

Теперь, Clickatell иногда отправляет мне UDH, который выглядит следующим образом:

050003fe0303

И это прекрасно - это похоже на UDH.Все хорошо.Но иногда они посылают мне UDH, который выглядит следующим образом:

303530303033666530333033

Обратите внимание, что это альтернативная кодировка того же UDH, что и в первом примере выше.

Что мне нужно сделать, этовыяснить, почему эти две кодировки эквивалентны.Вторая кодировка почти наверняка состоит из пар чисел.Итак:

30 = 0
33 = 3
35 = 5

я не понимаю, почему префикс «3» меняется на «6».Похоже, это происходит после того, как мы доберемся до «8».Мне удалось выяснить, что 66 = f, 65 = e и 63 = c, поэтому я угадываю, что код:

30 = 0
31 = 1
...
38 = 8
60 = 9
61 = a
...
66 = f

Кто-нибудь может подтвердить эту кодировку?Это то, что вы видели раньше?Кто-нибудь знает, почему 3 меняется на 6?

С любопытством ...

1 Ответ

1 голос
/ 07 ноября 2011

Шестнадцатеричные коды ASCII для символов «0» - «9»: 0x30 -> 0x39.

0x61 - это строчные буквы «a», 0x66 - «f» и т. Д.

Я не уверен, почему вы думаете, что «9» - это 0x60?

Вы можете увидеть полную таблицу здесь: http://www.asciitable.com/

...