背景是这样的:我正在使用带有租用号码的 ClickaTell 来接收传入的 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?
你的好奇...