1、引言
根据短信内容的大小,将常用短信分类:单条短信和长短信。所谓长短信是指短信的大小超过了单条短信的限制,需将短信拆分成几条短信然后分别发送,接收的时候将几条短信拼在一起组成原始短信的内容,对于拆分后每条短信的长度有一定的限制与单条短信有区别。单条短信不需要拆分,就可以发送。对于单条短息和长短信的标准,下面会一一讲解。
2、标准
2.1 单条短信
单条短信的长度根据其编码方式的不同,其限制不一样,对于英文编码采用7bit的编码方式,允许输入最多字符数是160。中文采用16bit的编码方式,允许输入的最多字符数是70个。那对于中英文混合的是怎么规定的呢?大家肯定会疑惑。
对于中英文混合输入,都采用16bit编码的方式,也即是允许输入最多的字符数是70个,其字节数是140个字节。
2.2 长短信
那对于长短信来说,需要拆分成短短信,每条短短信的规定与单条短信的规定不同。英文情况下每条短短信允许最多输入字符数是153个;中文以及中英混合文允许最多的字符数是67个,其最大字节数是134个字节。
一条长短信最多允许用户最多可以输入2000个字符,大家试想一下,如果是输入的是中文字符,最多可以拆分成30多条,英文也可以拆分10多条。当然这不是绝对的,有些平台会限制这个长短信拆分后的短信数量,如果超出会转换成彩信。
3、拆分原理
3.1 字符数统计
对于长短信来说当英文情况下其字符数超过160就需要拆分,中文以及中英文混合情况下字符数超过70需要拆分成多条短短信。
这里也顺便解释一个问题,大家可能在使用过程中会遇到一个问题,在字数统计的时候第二条显示"145/2",其含义表示第二条可以输入146个字符,如下图所示

按照上面长短信的规范来看,应该是152,且看第三条,如下图所示

“152/3”统计数是正确的,那为什么第二条不正确了,其原因在于第一条统计数是160,因为只有当第一条超过160后短信才需要拆分,所以第一条的字符数已经是160了,超出了正常的153,这时如果第二条或以后的每条都是153,其拆分后的短信数目与统计就有差异。所以为了弥补这种差异将第二条的字符数减去了第一条多的字符数。
简单地说,每条短短信的字符数=(第一条+第二条)/2。
对于中文以及中英文混合来说其原理一样,第一条70,第二条64,后面的每条67.
3.2 拆分
了解了长短信的规定以及字符统计原理后,拆分就变得简单了,其基本原理就是:英文使用7bit,且每条短短信字符数是153;中文采用16bit,每条短短信67个字符。
拆分短信的时候是直接将短信的内容根据字符数来拆分,第一条、第二条后面的每一条都是公平的,不会存在第一条160,第二条146的情况,只会都是153,除了其最后一条可能小于153.这里笔者想表达的含义是拆分与统计是两码事,拆分是将短信内容根据规定拆分成具体的短短信,是在短信的发送流程中进行的。统计是在用户输入字符的时候提示给用户的,统计只是为了方便用户知道当前长短信拆分后的数量以及输入字符数的限制等。
4、总结
对于长短信和单条短信的规定这里做了一个简单的分析,大家可以从上面的描述知道短短信、长短信、单条短信他们之间的关系以及不同。
本文介绍了长短信和单条短信的标准,其中单条短信英文限制为160字符,中文为70字符。长短信需拆分,英文每条153字符,中文67字符。拆分原理基于字符数统计,确保每条短信长度符合规定。

1439

被折叠的 条评论
为什么被折叠?



