utf-16

2017-02-07  本文已影响0人  小小青蛙不怕风吹雨打

wiki UTF-16

编程语言的使用

utf-16可以算是2字节定长编码。
字符处理方便且速度快,算长度啊,定位字符啊,正则匹配等。
所以许多编程语言的内部编码都是utf-16。
java、js、c#、python默认的字符串内部编码都是utf-16。

然而那些unicode超出U+FFFF的字符需要4个字节表示。
就出坑了,如js代码

a = "我是𪚥" // a.length == 4
b = a[2] // b是个乱码,而不是'𪚥'

优点

缺点

特殊的编码

U+D800到U+DFFF是没有定义unicode的,utf-16用这段来标识4字节字符。分高低位,共20个有效bit位。
如果不支持非UCS-2的unicode,可以直接不认这个范围里的字符。

上一篇下一篇

猜你喜欢

热点阅读