Unicode非字符

时间:2017-02-08 14:15:49

标签: unicode

是否有很好的资源可以找到每架飞机的最后两个字符,特别是3-13号飞机?

显然0xFFFE0xFFFF是非字符,以及0x10FFFE0x10FFFF,但我无法找到完整列表每个平面的最后一个字符,因为我无法分辨每个平面的终点。

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

4 个答案:

答案 0 :(得分:1)

每个Unicode平面包含2个 16 代码点,从0x000000开始,每个平面的最后两个字符都是非字符。因此,所有 0x••FFFE0x••FFFF代码点都是非字符的,其中••0x000x10之间的任何内容(标识平面) )。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  

...,因为我无法分辨每架飞机的终点。

根据定义,每个平面都以U+xxFFFF结束。

  

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

没有。 Unicode标准版本9.0 - 核心规范表示(在第23.7节非字符中):

  

Unicode标准预留了66个非字符代码点。每个平面的最后两个代码点是非字符的:BMP上的U + FFFE和U + FFFF,平面1上的U + 1FFFE和U + 1FFFF,依此类推,直到U + 10FFFE和平面16上的U + 10FFFF,总共34个代码点。此外,BMP中还有另外32个非字符代码点的连续范围:U + FDD0..U + FDEF。由于历史原因,范围U + FDD0..U + FDEF包含在阿拉伯语Presentation Forms-A块中,但那些非字符不是“阿拉伯语非字符”或“从右到左的非字符”,并且不在任何区别与其他非字符的其他方式,除了代码点值。

注意关键字“代码点”,而不是“字符”,它们总是U + xxFFFE和U + xxFFFF。

答案 3 :(得分:0)

官方资料已经可以在http://unicode.org/charts/index.html中找到;搜索“非字符图表”。实际上,在第3到D平面(从Unicode 12.1开始)末尾的非字符是这些平面中唯一指定的代码点。

Unicode中恰好有 66 个非字符。在17个平面中的每个平面的最后两个代码点上有34个非字符,并且在阿拉伯表示形式B块中,还有从U + FDD0至U + FDEF的32个非字符的连续范围。

任何以FFFE或FFFF结尾的代码点都是非字符。除例外情况外,任何以FDD或FDE开头的4位代码点都是非字符。

我将列举非字符:

  • FDD0-FDEF [这32个字符在Unicode 3.1中指定,以分配更多代码点供内部使用]
  • FFFE [可能是最著名的,这与BOM的使用有关]
  • FFFF [可用作哨兵,在16位带符号的int中等于-1]
  • X [其中16架在补充飞机上; X 是一个十六进制数字或10]
  • X [其中16架在补充飞机上; X 是一个十六进制数字或10]