哪个是更好的Unicode规范化表单?

时间:2011-03-22 10:43:00

标签: forms normalization dreamweaver unicode-normalization

我在Dreamweaver上有四个选项:C,D,KC,KD。我应该选择哪一个?为什么?

1 个答案:

答案 0 :(得分:27)

为了什么?保存文件,使用NFC作为Web角色模型使用它(严格来说,W3C规范化坚持要求流都在NFC中,并且当HTML或XML中的实体转换为它们所代表的字符时,它仍然在NFC中)。虽然它可以阻止一些相当模糊的问题让一些人感到不安,但它实际上会产生实际差异的可能性很小。

标准化使某些等效序列产生相同的流。例如,U + 0065(e)后跟U + 0301(组合急性重音)本身相当于U + 00E9(é)。

NFD将所有这些字符串分成其组成部分(例如,将U + 00E9转换为U + 0065,然后转为U + 0301)。如果一行中有两个或两个以上的组合字符,则根据提供一致性的规则对它们进行重新排序(ḉ可能有cedilla,后面是精度,后面是cedilla,我们需要一致的排序产生相同的字符串)。大多数情况下,NFD对于内部处理非常有用,可作为其他任务的一部分,例如剥离重音或生成NFC。

NFC从NFD开始,然后在可能的情况下再次将字符组合在一起,除了一些例外,以确保具有一个Unicode版本的规范化字符串仍然与另一个版本保持一致。

NFKD比NFD更进一步替换某些类似的角色。 ⁵例如被替换为5.这“损坏”文本(用户可以合理地选择⁵超过5),但是对搜索有用(在google上搜索“fish”并返回“fish”的结果,因为它将long-s视为short-s并且在某些情况下作为限制来避免具有相似但不同字符的安全问题。 NKFC首先进行NFKD,然后以与NFC相同的方式组合。

http://unicode.org/reports/tr15/表示完全瘦,并且“使用NFC但不要担心”重复简短回答。