Jon*_*ler 26
Unicode中的最大有效代码点是U + 10FFFF,这使得它成为21位代码集(但并非所有21位整数都是有效的Unicode代码点;特别是0x110000到0x1FFFFF的值不是有效的Unicode代码点).
这是数字1,114,112来自:U + 0000 .. U + 10FFFF是1,114,112个值.
但是,还有一组代码点是UTF-16的代理.它们在U + D800 .. U + DFFF范围内.这是为UTF-16保留的2048个代码点.
1,114,112 - 2,048 = 1,112,064
还有66个非角色.这些部分在勘误表#9中定义:形式为U + nFFFE和U + nFFFF 的值(其中n是值0x00000,0x10000,...... 0xF0000,0x100000),以及32个值U + FDD0-U + FDEF.减去这些也会产生1,111,998个可分配字符.有三个范围保留用于"私人使用":U + E000 .. U + F8FF,U + F0000 .. U + FFFFD,以及U + 100000 .. U + 10FFFD.实际分配的值的数量取决于您正在查看的Unicode的版本.您可以在Unicode Consortium中找到有关最新版本的信息.除此之外,那里的介绍说:
Unicode标准版本7.0包含112,956个字符
因此,只分配了大约10%的可用代码点.
我无法解释为什么你发现1,112,114作为代码点的数量.
顺便提一下,选择上限U + 10FFFF,以便Unicode中的所有值都可以用UTF-16中的一个或两个2字节编码单位表示,使用一个高代理和一个低代理来表示BMP或Basic之外的值.多语言平面,范围U + 0000 .. U + FFFF.
| 归档时间: |
|
| 查看次数: |
9485 次 |
| 最近记录: |