【备忘】UNICODE&UTF

ascii是英语的编码
统一了全球字符语言的字符集是unicode
unicode编码方式称为UTF。

将unicode的码直接用16位来存储称位UTF-16。但问题是16位能表示到6w,而Unicode5.0已经有10w了。这意味着少见语言的生僻字符很有可能表示不了。因此有时候为了保证非英语语言的安全性用UTF-32,可是这意味着一个字符要4字节.....。
同时,因为有多个字节,就存在字节存储的大小端问题,在通信时造成麻烦。

UTF-8不是用8个字节存储,而是利用每个字节的前几个标志位进行编码,这意味着UTF-8是变长的,而且不存在大小端问题(读取方法隐含在编码规则中了)。缺点就是存储非英语语种占字可能较多,而且变长字节不方便索引。

因此,我们常常用UTF-8通信,然后转换成UTF-16/32来处理

你可能感兴趣的:(【备忘】UNICODE&UTF)