Ran*_*agg 14 unicode validation html5 notepad++ unicode-normalization
当我试图验证我的网站(http://dvartora.com/DvarTora/)时,我收到以下错误:
文本运行不在Unicode规范化表单C中
A:这是什么意思?
B:我可以用记事本++修复它吗?
C:如果B不是,我如何使用免费工具(不是Dreamweaver)解决这个问题?
dan*_*n04 17
这是什么意思?
来自W3C:
在Unicode中,可以生成具有不同字符序列的相同文本.例如,取匈牙利语világ.第四个字母可以存储在内存中作为 预先组合的 U + 00E1 LATIN SMALL LETTER A WITH ACUTE(单个字符)或 U + 0061 LATIN SMALL LETTER A 的分解序列,然后是U + 0301 COMBINING ACUTE ACCENT(两个字符) .
világ=világ
Unicode标准允许这些替代方案中的任何一种,但要求两者都被视为相同.为了提高效率,应用程序通常会在执行搜索或比较之前对文本进行规范化.在这种情况下,规范化意味着将文本转换为使用所有预先分解或所有分解的字符.
Unicode标准指定了四种规范化形式:NFC,NFD,NFKC和NFKD.C代表(预)组成,D代表分解.K代表兼容性.为了提高互操作性,W3C建议在Web上使用NFC规范化文本.
除了"提高互操作性"之外,预合成文本通常看起来比分解文本更好.
如何使用免费工具解决这个问题
通过使用与text = unicodedata.normalize('NFC', text)
您喜欢的编程语言相当的Python函数.
(或者,如果您不打算编写程序,则应将您的问题转移给超级用户或网站管理员.)
Juk*_*ela 10
答:这意味着它所说的内容(请参阅dan04对简短答案的解释和长标准的Unicode标准),但它只是表明验证者的作者想要发出警告.HTML5规则不需要规范化表格C(NFC); 它更像是W3C所青睐的东西.
B.没有必要修理任何东西,除非你决定使用NFC实际上会更好.如果您这样做,那么有各种自动转换为NFC的工具,例如免费的BabelPad编辑器.如果您只需要处理不在NFC中的一个字符,则可以使用字符信息存储库(如Fileformat.info字符搜索)来查找字符的规范分解并使用它.
您是否使用NFC取决于许多考虑因素和所涉及的角色.通常,NFC工作得更好,但在某些情况下,替代的非NFC演示会产生更合适的渲染或在某些特定处理中更好地工作.
例如,在重复的问题中,引用Ω
已被报告为触发消息.(验证器实际上也会检查作为此类参考输入的字符,而不仅仅是纯文本级NFC检查.)参考代表U + 2126 OHM SIGN"Ω",其被定义为规范等效于U + 03A9 GREEK CAPITAL欧米茄的字母"Ω".Unicode标准明确指出后者是首选字符.字体也更好.但是,如果您有特殊原因要使用OHM SIGN,则可以在不违反当前HTML5规则的情况下执行此操作,并且可以忽略验证器警告.