Java 中的 Unicode 字符编码

Unicode

Unicode 源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了。

它从 0 开始,为每个符号指定一个编号,这叫做 ”码点”(code point)。比如,码点 0 的符号就是 null(表示所有二进制位都是 0)。

U+0000 = null

上式中,U+ 表示紧跟在后面的十六进制数是 Unicode 的码点。

这么多符号,Unicode 不是一次性定义的,而是分区定义

每个区可以存放 65536 个(2^16)字符,称为一个平面(plane)。

目前,一共有 17 个平面,也就是说,整个 Unicode 字符集的大小现在是 2^21

最前面的 65536 个字符位,称为 基本平面缩写 BMP),它的码点范围是从 0 一直到 2^16-1,写成 16 进制就是从 U+0000U+FFFF

所有最常见的字符都放在这个平面,这是 Unicode 最先定义和公布的一个平面。

剩下的字符都放在辅助平面(缩写 SMP),码点范围从 U+010000 一直到 U+10FFFF

Unicode 只规定了每个字符的码点,到底用什么样的字节序表示这个码点,就涉及到编码方法。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容