为什么unicode表中有漏洞?

时间:2017-11-09 15:47:57

标签: unicode utf-8 character-encoding standards

给出unicode表的this area,例如:

  ...
    U+1D44E Dec:119886       MATHEMATICAL ITALIC SMALL A 𝑎
    U+1D44F Dec:119887       MATHEMATICAL ITALIC SMALL B 𝑏
    U+1D450 Dec:119888       MATHEMATICAL ITALIC SMALL C 𝑐
    U+1D451 Dec:119889       MATHEMATICAL ITALIC SMALL D 𝑑
    U+1D452 Dec:119890       MATHEMATICAL ITALIC SMALL E 𝑒
    U+1D453 Dec:119891       MATHEMATICAL ITALIC SMALL F 𝑓
    U+1D454 Dec:119892       MATHEMATICAL ITALIC SMALL G 𝑔
    U+1D456 Dec:119894       MATHEMATICAL ITALIC SMALL I 𝑖 # what?!
    U+1D457 Dec:119895       MATHEMATICAL ITALIC SMALL J 𝑗
    U+1D458 Dec:119896       MATHEMATICAL ITALIC SMALL K 𝑘
    U+1D459 Dec:119897       MATHEMATICAL ITALIC SMALL L 𝑙
    U+1D45A Dec:119898       MATHEMATICAL ITALIC SMALL M 𝑚
    U+1D45B Dec:119899       MATHEMATICAL ITALIC SMALL N 𝑛
    U+1D45C Dec:119900       MATHEMATICAL ITALIC SMALL O 𝑜
  ...

我自然希望u + 1d455为MATHEMATICAL ITALIC SMALL H。但似乎没有在any table I look around上定义。

为什么unicode表中有漏洞? (也是U + 1d49d,你+ 1d53a,等。
有什么方法可以填补它们吗?

[编辑]:这些链接的状态为:

  

字母范围中的“孔”由字母中的先前定义的字符填充,如下所示的符号块。

  

Unicode Consortium一直向标准添加新的代码点。访问their website以了解有关待处理的代码点以及此代码点是否在管道中。下表显示了代码点的外观(如果存在)的典型表示。这可能会在调试时帮助您,但在其他情况下则没有实际用途。

但我只是......不明白他们的意思:\

1 个答案:

答案 0 :(得分:2)

从评论(欢呼的家伙)中,我了解到这些漏洞是由于在添加整个字母表时,某些字符在unicode中已经已经在使用

例如:在定义U+1D4* MATHEMATICAL ITALIC SMALL *个标识符之前, 已知在表格中

ℎ    U+210E Dec:008462        PLANCK CONSTANT ℎ # here it is

因此,为了保持编号的一致性而不是重复 id,在U+1D455位置插入了一个洞。

同样,U+212C SCRIPT CAPITAL B字母系列中称为U+1D49D - - - reserved而不是MATHEMATICAL SCRIPT CAPITAL

同样,来自个字母系列的MATHEMATICAL DOUBLE-STRUCK CAPITAL U+1D53A,因为它已被称为U+2102 DOUBLE-STRUCK CAPITAL C

这是Unicode难以选择的选择,必须完全处理复古兼容性,一致性和可靠性:)