【问题标题】:Text run is not in Unicode Normalization Form C文本运行不在 Unicode 规范化表格 C 中
【发布时间】:2011-07-24 19:46:15
【问题描述】:

当我尝试验证我的网站时,我收到以下错误:

文本运行不在 Unicode 规范化表格 C 中

答:什么意思?

B:我可以用notepad++修复它吗?

C:如果 B 不是,我如何使用免费工具(不是 Dreamweaver)来解决这个问题?

【问题讨论】:

  • 错误信息现在已经变成了警告,因为 HTML 规范和草案不要求使用 NFC——这只是 W3C 通常喜欢的东西。见discussion in the validator mailing list
  • 问题中提到的地址不再起作用(它被重定向到域托管站点)。

标签: html validation unicode notepad++ unicode-normalization


【解决方案1】:

什么意思?

来自W3C

在 Unicode 中可以生成 具有不同序列的相同文本 的字符。例如,采取 匈牙利语 világ。第四个 字母可以作为一个存储在内存中 precomposed U+00E1 拉丁小写字母 A WITH ACUTE(单个 字符)或作为分解的 U+0061 拉丁小写字母的序列 A 后跟 U+0301 结合急性 重音(两个字符)。

világ = világ

Unicode 标准允许 这些替代方案,但要求 两者都被视为相同。到 提高效率,一个应用 通常会在之前规范化文本 执行搜索或比较。 在这种情况下,标准化意味着 将文本转换为全部使用 预分解或全部分解 字符。

有四种规范化形式 由 Unicode 标准指定: NFC、NFD、NFKC 和 NFKD。 C代表 代表(预)作曲,而 D 代表 分解。 K代表 兼容性。改善 互操作性,W3C 建议 NFC 规范化文本的使用 网络。

除了“提高互操作性”之外,预组合文本通常看起来比分解文本更好。

如何使用免费工具解决此问题

通过在您最喜欢的编程语言中使用与 Python 的 text = unicodedata.normalize('NFC', text) 等效的函数。

(或者,如果您不打算编写程序,您的问题应该转给超级用户或网站管理员。)

【讨论】:

  • 规范化不仅仅是将某些字符耦合在一起。这也是关于将它们在它们的组合类中排序。例如,这10个版本的黑客 i>各自巧妙地不同的标志排序:ĥ̗̖aᷜç̌︣̕k̈͆,ĥ̗̖aᷜkk͆̈,ĥ̖̗ẫᷜĥ̖̗ẫᷜk̈͆,ĥ̗̖ẫᷜÇ︣̌̕k͆̈,ĥ̗̖Ãç̌︣̕k̈͆,ĥ̗̖ĥ̗̖ç︣̌̕k͆̈,ĥ̖̗ĥ̖̗ç︣̌̕k̈͆,ĥ̗̖ĥ̗̖ç̌︣̕k̈͆,ĥ̗̖Ãᷜç̌︣̕k͆̈,ĥ̗̖ĥ̗̖Ç̌︣̕k͆̈。其中一些标记将在 NFC 中合并和重新排序,但有些则不会。这十个在 NFC 和 NFD 中看起来是一样的,或者是乱七八糟的。它们是 UCA 排序的。
  • 在 JavaScript 中,应该是:'your_text'.normalize('NFC')
【解决方案2】:

A.它的意思是它所说的(见 dan04 的解释以获得简短的答案和 Unicode 标准的长答案),但它只是表明验证器的作者想要发出警告。 HTML5 规则不需要规范化表格 C (NFC);它是 W3C 普遍偏爱的东西。

B. 无需修复任何问题,除非您认为使用 NFC 实际上会更好。如果你这样做了,那么有各种工具可以自动转换为 NFC,例如免费的BabelPad 编辑器。如果只需要处理一个非NFC的字符,可以使用Fileformat.info character search等字符信息库找出字符的规范分解并使用。

您是否使用 NFC 取决于许多考虑因素和所涉及的字符。通常,NFC 效果更好,但在某些情况下,替代的非 NFC 呈现方式会产生更合适的渲染效果或在某些特定处理中效果更好。

例如,在重复问题中,引用 Ω 已被报告为触发消息。 (验证器实际上也检查输入的字符作为此类引用,而不仅仅是纯文本级别的 NFC 检查。)引用代表 U+2126 OHM SIGN “Ω”,它被定义为规范等效于 U+03A9 GREEK CAPITAL字母欧米茄“Ω”。 Unicode 标准明确指出后者是首选字符。它也更好地被字体覆盖。但是,如果您有特殊原因使用 OHM SIGN,您可以这样做,而不会违反当前的 HTML5 规则,并且可以忽略验证器警告。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2011-06-20
    • 2012-02-20
    • 2016-06-09
    相关资源
    最近更新 更多