- 字符格式分为:AscII(多字节)和unicode(宽字符);
- unicode只作为一种字符码表,使用四个字节为每个字符编码,需要通过制定的存储方式存储,例如UTF-8,UTF-16,UTF-32;
- UTF-8是一种变长编码,对于一个Unicode的字符会被编码成1——4个字节,特别的,它同时兼容ascii和unicode
- UTF-16也是变长编码,字符会被编码成2个码元(每个码元16位),所以,UTF-16包括三种:UTF-16,UTF-16BE(大尾序),UTF-16LE(小尾序)。如果字符的Unicode 编号范围在 0 ~ FFFF 之间,UTF-16 使用两个字节存储,并且直接存储 Unicode 编号。如果字符的 Unicode 编号范围在 10000~10FFFF 之间,UTF-16 使用四个字节存储,具体来说就是:将字符编号的所有比特位分成两部分,较高的一些比特位用一个值介于D800~DBFF 之间的双字节存储,较低的一些比特位(剩下的比特位)用一个值介于 DC00~DFFF 之间的双字节存储。由于没有单字节编码,不兼容ascii。
- UTF-32 是定长编码,使用一个32bit对码元,码元值大小与unicode相等。同样不兼容ascii。
参考链接
unicode与UTF-8 UTF-16 UTF-32的关系
最新推荐文章于 2023-06-27 14:35:36 发布