有个客户抱怨说,编辑短信时,在输入特殊字符后,提示的短信长度会跳变。对比下面2张图:
只是输入了一个特殊字符,短信数量直接从1条变成了3条。这是个bug吗?
答案是,短信长度计算没有问题。
因为在没有特殊字符的情况下,短信使用7bit压缩编码。
而只要有1个特殊字符,整条短信都必须转换成使用16bit的Unicode编码。
简单的算,一条短信用7bit编码时,长度可以是160个字。而使用16bit编码时,只可以70字。
也就是说,1条短信如果使用7bit编码时,字数在140 ~160之间的话,变成16bit编码时,就需要3条短信才能够发出去。
所以这个问题其实就不是bug了,是正常现象。