我正在編寫基於所有ETSI GSM文檔處理SMS PDU的代碼。有一件事我需要問一下。 PDU包含用戶數據長度字段,然後是用戶數據。根據GSM 03.40,UDL字段是使用未壓縮GSM缺省字母表時的用戶數據的七位字節數。但是,它也表示,當數據被壓縮時,UDL是用戶數據的八位字節數。SMS PDU和用戶數據長度
參見引號:
如果TP用戶數據使用 GSM 7位默認字母編碼,則TP 用戶數據長度字段給出內的七重峯的數目 的 整數表示TP用戶數據 字段。
[...]
如果TP用戶數據使用 壓縮GSM 7位默認字母表 或壓縮8位數據或壓縮 UCS2 [24]的數據,該TP用戶數據 長度字段編碼給出一個整數 表示在TP User 數據字段後面的八位字節數 後面的數字字段。
的問題是,當7位數據進行壓縮和壓縮用戶數據的字節數是7的倍數,你不知道在最後一個字節的最後7位是否填寫位或一個真實的角色。即打開壓縮時,7個字節可能包含7個或8個7位字符。而當UDL字段是八位字節數時,你怎麼知道這7個字節是否包含7或8個字符?如果UDL包含septets的數量,那麼一切都會很清楚,對吧?那麼我是否誤解了文檔,或者它是否真的以這種方式工作?
任何人都可以請解釋我是如何工作的嗎?提前致謝!