因爲短信模板字數限制的緣由,查詢信息以下:測試
在上世紀80年代,因爲當時的技術條件有限,無線傳輸的帶寬不是很高,而且主要用於汽車電話上,這就要求手機短信要言簡意賅。編碼
而當時短信技術的主要發明人Hillebrand爲了聽從這一要求,在打字機上隨意地打出幾條字句組成信息進行試驗。當完成打字並開始檢查字句的字符數時,他發現這些信息每條都只有1-2行的長度,總字符數也小於160個。spa
後來他說:「對於人們平常使用,這些數字足夠了。」就這樣,他決定將160個字符做爲手機短信的長度上限,也確立了今天手機短信的字符數限制數。code
如今根據國際標準,基於英文ASCII採用7位編碼,若是發送純英文字符,1120位的限額能夠傳送1120÷7=160個字符。當傳送的字符中包含中文在內的雙字節字符,不論中文仍是其餘文字,全角仍是半角,都必須採用2個字節的8位編碼,所以1120÷8÷2=70個字符,即最多傳送70個漢字。(亦即只要短信中包含了一個雙字節字符,則全部的單個字符都會被當作雙字節字符。因此用mb_strlen()方法是沒有問題的。)get
現在,短信已爲全世界手機用戶所熟悉和使用;同時在不少年的時間裏成爲了各大通訊運營商額生財之道。it
如下爲知乎回答:io
7位元字符就是指標準ASCII去掉最高位的0。以這種方式進行編碼,在美國這樣的國家,發送的短信字符都是ASCII碼錶裏的,因此不必浪費一個字位。字符編碼
而短信協議支持7字位、8字位、16字位3種編碼,7字位用於美國,能夠發送160個字母,8字位用於歐洲國家,16字位用於中日韓俄等國家,使用UCS-2編碼。而UCS-2把全部Unicode字符編碼爲2字節,因此即便英文字母也會編碼成2個字節。模板
使用Windows Mobile 6系統作測試,新建短信後輸入一個英文字母,下面顯示1/160,再輸入一個顯示2/160,這就是7字位狀態,能夠在140字節裏裝下160個字符。當再輸入一個漢字的時候,下面的顯示馬上變成3/70,這就是16字位狀態,每一個字符都佔2個字節,140字節只能裝下70個字符,哪怕裏面是69個英文字符加1個漢字。方法
若是短信超過長度,那麼系統就自動分紅多條短信來發。由於要加入一些標識性字符以表示順序,因此英文每條153個,中文每條67個。接收方若是是新一點的手機就會把這幾條合併後顯示給用戶,老一點的手機就會分別顯示每條短信。
做者:知乎用戶 連接:https://www.zhihu.com/question/20111231/answer/14012285 來源:知乎 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。