0

背景は次のとおりです。私は、レンタルした番号で ClickaTell を使用して、着信 SMS テキスト メッセージを受信して​​います。マルチパート/連結SMSをつなぎ合わせるコードを書いています。これを行うには、「ユーザー データ ヘッダー」または UDH から情報を抽出する必要があります。UDH の形式については、http: //en.wikipedia.org/wiki/Concatenated_SMSで説明しています。

現在、Clickatell は時々次のような UDH を送ってきます。

050003fe0303

これで問題ありません。UDH のように見えます。すべて良い。しかし、ときどき次のような UDH が送られてきます。

303530303033666530333033

これは、上記の最初の例と同じ UDH の代替エンコーディングであることに注意してください。

私がしなければならないことは、これら 2 つのエンコーディングが同等である理由を解明することです。2 番目のエンコーディングは、ほぼ確実に数字のペアで構成されています。そう:

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 に変わる理由を知っている人はいますか?

不思議なことにあなたの...

4

1 に答える 1

1

文字 '0' ~ '9' の ASCII 16 進コードは 0x30 -> 0x39 です。

0x61 は小文字の「a」、0x66 は「f」などです。

「9」が 0x60 だと思う理由がわかりません。

ここで完全な表を見ることができます: http://www.asciitable.com/

于 2011-11-06T21:07:00.613 に答える