如何解码通过ClickaTell发送的传入(MO)短信的UDH(任何人都有趣的挑战 - 不需要短信体验)

时间:2011-11-06 18:26:24

标签: api encoding sms clickatell

背景是这样的:我正在使用带有租借号码的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?

你好奇地......

1 个答案:

答案 0 :(得分:1)

字符'0' - '9'的ASCII十六进制代码是0x30 - > 0x39。

0x61是小写'a',0x66是'f'等。

我不确定你为什么认为'9'是0x60?

您可以在此处查看完整表格:http://www.asciitable.com/