1

有没有很好的资源可以找到每个位面的最后两个字符,尤其是位面 3-13?

显然0xFFFEand 和 and一样0xFFFF是非字符,但是我找不到关于每个平面的最后一个字符在哪里的完整列表,因为我不知道每个平面的结束位置。0x10FFFE0x10FFFF

在 Unicodes 网站上,它指的是每个平面的最后两个字符是非字符。

4

4 回答 4

1

官方来源已经可以在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 位代码点都是非字符。

我将列举非字符:

  • FDD0-FDEF [这 32 个在 Unicode 3.1 中指定,分配更多的代码点供内部使用]
  • FFFE【可能是最值得注意的一个,这个涉及BOM使用】
  • FFFF [可用作哨兵,在 16 位有符号整数中等于 -1]
  • X ⁠FFFE [其中16个在辅助平面上;X是十六进制数字或 10]
  • X ⁠FFFF [其中16个在辅助平面上;X是十六进制数字或 10]
于 2019-12-10T17:16:40.340 回答
0

...,因为我不知道每架飞机在哪里结束。

根据定义,每个平面都以 结束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。

于 2017-02-12T08:09:29.533 回答
0
于 2017-02-09T06:11:02.720 回答
0

Unicode 字符数据库包含有关每个代码点状态的权威信息。使用它,您可以确定每个平面的最后分配的代码点。随着新角色的分配,这可能(实际上会)随着时间而改变。您还需要定义“字符”的含义——特别是,您是否将私人使用代码点视为“字符”。

于 2017-02-08T21:03:05.153 回答