附录:Unicode正规化
- 参见MediaWiki.org网站上的Unicode正规化注意事项。
维基媒体基金会以及其他大部分网路上的伺服器将Unicode字串以“标准等价合成法”(NFC,Normalization Form (Canonical) Composition)的形式储存。这代表经常会有不同的Unicode字串被映射至相同的标准形式。在输入Unicode字串并储存页面时,系统会将其自动转换至标准形式。未经正规化的字串是无法被储存至维基词典页面的。
等价性
编辑标准等价形式 | 替代表示法 | → | 标准等价合成法 |
---|---|---|---|
结合序列 | C ◌̧ | → | Ç |
组合标记的顺序 | q + ̣+ ̇ | → | q+ ̇+ ̣ |
谚文 | ᄀ +ᅡ | → | 가 |
单例形式 | Å | → | Å |
希伯来文 | ל ָ ֽ ִ | → | ל ִ ָ ֽ |
问题
编辑大部分时候,标准等价合成法能使处理文字更加容易,但仍会出现一些语义/非语义的怪异之处。
以下举出4个单一字元不是标准等价合成形式的范例。
- 有时,一个替代的单一字元是正规的组成形式
- 范例:
U+212B
(Å - ANGSTROM SIGN)会被转换至U+00C5
(Å - LATIN CAPITAL LETTER A WITH RING ABOVE)
- 范例:
- 对某些脚本来说,预先合成的字元并非首选
- 如果在Unicode 3.0之前就有分解,而在之后加入的预合成字元,则优先选择该分解组成形式
- 当分解以非起始点开始时,分解组合被优先于预合成字元
在一些常见的情况下,Unicode对两个变音符的典型排序是违反直觉的,并且/或者与某些现有的软件互操作性很差。在其他不太常见的情况下,问题在于双音符不应该有一个正规的排序,因为这两个排序实际上是不对等的(也就是说,这两个双音符的Canonical_Combining_Class(ccc)属性应该有相同的值,但它们的值却不同)。例如,希伯来语的לִַ("lai")被错误地正规化为לִַ("lia")。
由于该转换是自动的,因此不可能存在非NFC形式的页面。试图明确地链接到非NFC形式,Å将显示非NFC形式,但当点击时将把用户带到NFC页面的Å。
显示
编辑可在页面中使用{{HTML char}}
显示非标准等价合成形式的字元:“{{HTML char|212B}}
”会显示成“Å”。
要注意两个单一字元之间的正规等价关系,请在NFC字元的相应{{Normalization}}
模板的标题字段中使用{{Character info}}
(见Å的例子)。
要注意一个预组合字元的NCF是一个分解,请在NFC分解的相应{{Decomposed}}
模板的标题字段中使用{{Character info}}
(见क़的例子)。