为什么unicode表中有漏洞?

iag*_*ito 5 unicode standards utf-8 character-encoding

给定unicode 表的这个区域,例如:

  ...
    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 𝑜
  ...
Run Code Online (Sandbox Code Playgroud)

我自然希望 u+1d455 是MATHEMATICAL ITALIC SMALL H. 但似乎没有定义任何 看看 四周

为什么unicode表中有漏洞?(还有 U+1d49d、u+1d53a
有什么办法可以填充它们吗?


[编辑]:这些链接确实说明:

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

Unicode 联盟一直在向标准添加新的代码点。访问他们的网站以了解待处理的代码点以及该代码点是否在管道中。下表显示了代码点外观(如果存在)的典型表示。这可能在调试时对您有所帮助,但在其他情况下没有实际用处。

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

iag*_*ito 8

从评论(欢呼的家伙)中,我了解到这些漏洞是由于在添加整个字母表时已经在 Unicode 中分配了一些字符。

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

?    U+210E Dec:008462        PLANCK CONSTANT ℎ # here it is
Run Code Online (Sandbox Code Playgroud)

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


同样,?被称为U+212C SCRIPT CAPITAL B而不是U+1D49D - - - reservedMATHEMATICAL SCRIPT CAPITAL字母家族中。

同样,?来自MATHEMATICAL DOUBLE-STRUCK CAPITAL字母家族也不 U+1D53A是因为它已经被称为U+2102 DOUBLE-STRUCK CAPITAL C.

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