背景是这样的:我正在使用带有租借号码的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?
你好奇地......
答案 0 :(得分:1)
字符'0' - '9'的ASCII十六进制代码是0x30 - > 0x39。
0x61是小写'a',0x66是'f'等。
我不确定你为什么认为'9'是0x60?
您可以在此处查看完整表格:http://www.asciitable.com/