Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 手機短信編碼與長度限制

手機短信編碼與長度限制

編輯:關於Android編程

手機短信收發有三種方式:Block方式、Text方式和PDU方式,前兩種在國內很少使用,PDU格式則普遍支持。內容總長度140個字節(1120位),支持采用三種編碼方式:7-bit、8-bit和UCS2編碼,

7-bit編碼——用於發送普通的ASCII字符,ASCII碼表最大到0x7X,最高位為0,總7-bit,實際編碼時則可把8-bit的最高位比特使用起來,所以可支持1120/7=160個字符;

8-bit編碼——用於發送數據消息,比如圖片和鈴聲、二進制數據等,此類數據無法使用7-bit編碼,因為那樣會丟掉一位,也不能用下面UCS2編碼,因為不符合UNICODE編碼檢查(范圍)。8-bit編碼最多支持140個字節數據。

UCS2編碼——用於發送Unicode字符,每個中文(韓文、日文),占用2字節,只要短信裡包含這些多字節編碼文字,那麼即使還有英文,英文也需要安裝UCS2編碼,也占用2字節,所以,最多支持70個中文字(或中英混合短信)

總之,只要含有中文(日文、韓文等),就需要使用多字節編碼方式,若編碼采用UCS2格式,1中文字占2字節,則可容納70個中文字,如果是純英文,將默認使用7bit編碼方式(注意是7bit編碼),則可容納(140*8)/7=160個字符。

超過此長度的短信,目前的智能機平台都可以本地實現自動切分成多個短信後再逐一進行發送,長短信因為要涉及到協議頭。

如果想通過短信發送非文本信息的數據,建議通過數據端口方式,而不是文本,否則文本短信的默認處理規則(7bit格式)可能會導致數據不完整或丟失。

PDU編碼由以下部分組成(順序連接):

  1. 短信息中心地址長度——1字節。
  2. 短信息中心號碼類型——1字節。
  3. 短信息中心號碼——A設置的長度-B的長度。
  4. 文件頭字節——1字節。
  5. 信息類型——1字節。
  6. 被叫號碼長度——1字節。
  7. 被叫號碼類型——1字節,取值同B。
  8. 被叫號碼——長度由F中的數據決定。
  9. 協議標識——1字節。
  10. 數據編碼方案——1字節。
  11. 有效期——1字節。
  12. 用戶數據長度——1字節。
  13. 用戶數據——其長度由L中的數據決定。J中設定采用UCS2編碼,這裡是中英文的Unicode字符。

相關短信息收發規范,可參考:GSM 03.38、GSM 03.40和GSM 07.05協議相關章節。

下面是對一組測試代碼的結構分析,摘自下文參考資料文檔。

示例代碼:0891683108506405F011500B 813168934922F60008FF084E2D56FD79FB52A8

結構分析:

 注意,其中的TP-DCS,這個字節就是制定PDU數據的解碼方式。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved