有没有很好的资源可以找到每个位面的最后两个字符,尤其是位面 3-13?
显然0xFFFE
and 和 and一样0xFFFF
是非字符,但是我找不到关于每个平面的最后一个字符在哪里的完整列表,因为我不知道每个平面的结束位置。0x10FFFE
0x10FFFF
在 Unicodes 网站上,它指的是每个平面的最后两个字符是非字符。
有没有很好的资源可以找到每个位面的最后两个字符,尤其是位面 3-13?
显然0xFFFE
and 和 and一样0xFFFF
是非字符,但是我找不到关于每个平面的最后一个字符在哪里的完整列表,因为我不知道每个平面的结束位置。0x10FFFE
0x10FFFF
在 Unicodes 网站上,它指的是每个平面的最后两个字符是非字符。
官方来源已经可以在http://unicode.org/charts/index.html 找到;搜索“图表中的非字符”。事实上,平面 3 到 D [截至 Unicode 12.1] 末尾的非字符是这些平面中唯一指定的代码点。
Unicode中正好有66 个非字符。有 34 个非字符位于 17 个平面中每个平面的最后两个代码点,并且在阿拉伯语表示形式-B 块中还有一个从 U+FDD0 到 U+FDEF 的额外 32 个非字符的连续范围。
任何以 FFFE 或 FFFF 结尾的代码点都是非字符。对于例外情况,任何以 FDD 或 FDE 开头的 4 位代码点都是非字符。
我将列举非字符:
...,因为我不知道每架飞机在哪里结束。
根据定义,每个平面都以 结束U+xxFFFF
。
在 Unicodes 网站上,它指的是每个平面的最后两个字符是非字符。
不,Unicode 标准版本 9.0 - 核心规范说(在第 23.7 节Noncharacters 中):
Unicode 标准预留了 66 个非字符代码点。每个平面的最后两个代码点是非字符:BMP 上的 U+FFFE 和 U+FFFF,平面 1 上的 U+1FFFE 和 U+1FFFF,依此类推,直到平面 16 上的 U+10FFFE 和 U+10FFFF,总共 34 个代码点。此外,BMP 中还有另外 32 个非字符代码点的连续范围:U+FDD0..U+FDEF。由于历史原因,范围 U+FDD0..U+FDEF 包含在阿拉伯语表示形式-A 块中,但这些非字符不是“阿拉伯语非字符”或“从右到左的非字符”,并且在任何其他非字符的其他方式,除了它们的代码点值。
注意关键字“代码点”,而不是“字符”,它们总是 U+xxFFFE 和 U+xxFFFF。
Unicode 字符数据库包含有关每个代码点状态的权威信息。使用它,您可以确定每个平面的最后分配的代码点。随着新角色的分配,这可能(实际上会)随着时间而改变。您还需要定义“字符”的含义——特别是,您是否将私人使用代码点视为“字符”。