3

我知道 ES6 将有一个新功能,它将对字符串进行 utf-8 规范化(例如使用“NFC”形式)。

阅读http://www.unicode.org/faq/normalization.html,我看到了这个常见问题解答:

问:W3C 规范化和 Unicode 规范化有什么区别?

答:Unicode 标准化有 4 种风格:C、D、KC、KD。与 W3C 规范化相关的是 C。W3C 规范化还将字符引用 (&#nnnn;) 视为等同于字符。例如,文本字符串“a&#xnnnn;” (其中 nnnn = "0301") 是 Unicode 规范化的,因为它仅包含 ASCII 字符,但它不是 W3C 规范化的,因为它包含与“a”组合的锐音重音的表示,并且在规范化形式 C 中,应该已经归一化为 U+00E1。

这是否意味着我们需要替换所有出现的 &#xnnnn; 在调用 normalize('nfc') 之前通过他们的 utf8 等价物?

或者是否会有某种 normalize('w3c') 有助于考虑通过 ascii "&#xnnnn;" 结合重音的字母 等价于它的规范化形式?

4

1 回答 1

1

当您的 javascript 执行 &...; 如果您处理 DOM,它已经消失了。您唯一会看到的是,如果您以某种方式下载和 html。而且,无论如何,转换 &...; 正确的字符是不转义的,而不是规范化的。所以你必须取消转义,然后正常化。

于 2014-07-16T03:26:54.400 回答