我们都知道Unicode的大部分字符都是都是使用16位编码,即2个字节表示。
这也是为什么正则匹配中,Unicode使用“\uxxxx”进行匹配的原因
为什么说是大部分呢?因为还有一个神奇的区域,叫做Unicode代理对。它们需要使用4个字节来表示一个字符。
这里就给大家做介绍。
问题来源
Unicode的产生是为了处理不同语言之间的编码不兼容问题。
比如如果中文和日文的不同文字使用了同一个编码值进行表示,那么一篇中文的软件/操作系统中创作的文章,到了日文软件/操作系统中显示就会出现乱码。
Unicode期望规定一种通用的文字编码方式能够唯一的表示所有的文字字符。这样只要所在的软件/操作系统支持Unicode,任何文章都能在这些电脑上保持一致的字符显示。
显然,为了支持任意的文字,Unicode需要保证其编码范围要大于所有的文字字符数量。
那么,Unicode使用16位编码能够最多表示 2 16 = 65536 {2^{16}=65536} 216=65536,这对于当前常见的主要语言的字符,数学符号等已经基本够用。
但是值得注意的是,世界上还有很多小语种&