Unicode 编码与 UTF-32、UTF-16、UTF-8

字符编码与 Unicode 编码 字符,又或者说文本在计算机中是以字符编码的方式存储的。计算机以二进制处理信息,每一位只有 1 和 0 两种状态,每个字节就可以组合出2^8=256种状态(1 字节=8 位)。以 ASCII 为例,它用 7 位的二进制来表示字母、数字和其它符号编号,共计 128 个字符,通常会额外使用一个扩充的位,以便于以 1 个字节的方式存储。 Unicode 是一个庞大的字符编码集合,是一种用于展示世界上所有语言的字符的编码标准。在 20 世纪 80 年代开始启动设计工作时,人们认为两个字节的代码宽度足以对世界上各种语言的所有字符进行编码,并有足够的空间留给未来的扩展,理论上一共最多可以表示 2^16(即 65536)个字符。这 16 位统一码字符构成了基本多文种平面,其编码范围为 U+0000 ~ U+FFFF。 经过一段时间,Unicode 字符超过了 65536 个,基本多文种平面无法满足描述所有 Unicode 字符的需要了。为了扩展需求,Unicode 在原来的基础上新增了 16 个辅助平面,每个平面的编码范围为: 辅助平面 1:U+10000 ~ U+1FFFF 辅助平面 2:U+20000 ~ U+2FFFF … 辅助平面 15:U+F0000 ~ U+FFFFF 辅助平面 16:U+100000 ~ U+10FFFF 所有辅助平面的编码范围为 U+10000 ~ U+10FFFF,共计 16 个辅助平面,每个辅助平面最多可存储 2^16(即 65536)个字符,也可以说每个辅助平面都有 65536 个码位。 到这里为止,还只是 Unicode 的编码方式,下文简要说明其几种实现方式。...

2020年12月16日 · ruihusky