我正在编写一个基于所有这些 ETSI GSM 文档处理 SMS PDU 的代码。我需要问一件事。PDU 包含一个用户数据长度字段,后跟用户数据。根据 GSM 03.40,当使用未压缩的 GSM 默认字母表时,UDL 字段是用户数据的 septets 数。但是,它也说,当数据被压缩时,UDL 是用户数据的八位字节数。
见引文:
如果使用 GSM 7 位默认字母表对 TP 用户数据进行编码,则 TP 用户数据长度字段给出 TP 用户数据字段中要遵循的 septets 数量的整数表示。
[...]
如果 TP 用户数据使用压缩的 GSM 7 位默认字母表或压缩的 8 位数据或压缩的 UCS2 [24] 数据进行编码,则 TP 用户数据长度字段给出 TP 用户数据字段内压缩后八位字节数的整数表示跟随。
问题是当7位数据被压缩,并且压缩后的用户数据的八位字节数是7的倍数时,你不知道最后一个八位字节中的最后7位是填充位还是真正的字符。即当压缩打开时,7 个八位字节可能包含 7 个或 8 个 7 位字符。而当 UDL 字段是八位字节的数量时,你怎么知道这 7 个八位字节是包含 7 个字符还是 8 个字符?如果 UDL 包含 septets 的数量,那么一切都会很清楚,对吗?那么我是否误解了文档或者它真的以这种方式工作?
谁能解释一下它是如何工作的?提前致谢!