sim卡姓名长度最大为14字节可以输入11个相同汉字

来源:互联网 发布:淘宝武汉飞鱼运动 编辑:程序博客网 时间:2024/05/01 08:04
[DESCRIPTION]
 
SIM卡记录名字的最大长度是14 ,可以输入14个字符,输入中文是可以输入6个,但是如果是相同的汉字 ,可以输入11个。如,可以保存"天天天天天天天天天天天" ,但只能保存"天天天天天气”
 
[SOLUTION]
 
sim联系人的中文编码采用UCS2 0x81编码. 编码格式为,14个字节,前两个字节表示编码方式和长度.一个汉字占用两个字节.  当输入全部相同的汉字时,将采用基址偏移的方式,第三个字节为基址, 后面11个字节则是通过基址偏移对应的unicode编码. 所以,当输入相同的汉字,最多可以存储11个汉字.
 
例如, 杜杜杜

UNICODE编码为:675C675C675C

用UCS2的81方案表示是:8103CEDCDCDC

81为标记

03表示整个字符串为3个字符

CE一个字节为基址。解析的方法为:将基址(CE)左移七位,并将最高位置为0,最低位再补一个0.此时基址变为0x6700,然后再判断后面的数据字节。

DCDCDC3个数据字节 DC, DC, DC 。如果数据字节的最高位为0,则认为此字节是一个ASCII字符。如果数据字节的最高位为1,则低7位为基址的一个偏移,实际的UCS2字符为基址加上这个偏移值。由于此处三个数据字节最高位都为1,则实际的3个字符的偏移值为:5C, 5C, 5C。实际的UCS2编码为: 0x675C 0x675C 0x675C

0 0
原创粉丝点击