【问题标题】:Entity codes and the lang attribute: should I use both?实体代码和 lang 属性:我应该同时使用吗?
【发布时间】:2015-07-31 13:33:48
【问题描述】:

我正在用芬兰语写一个标记文档。

我正在使用lang="fi-fi" 属性。我应该将标记实体(ä 用于ä 等)与语言属性结合使用,还是仅使用语言属性就足够了?实体和语言属性如何相互影响?

“问题”来自这样一个事实,即标记是在没有实体的情况下编写的,并且我有一个脚本应该使用正则表达式将扫描字母替换为实体——在定义 lang 属性后,脚本似乎没有不再工作(它应该在添加 lang 属性之前完成)。

我主要担心的是,无论浏览器如何,标记都能正确呈现,尽管可以假设是“现代”浏览器。

【问题讨论】:

    标签: html xml lang hyphenation


    【解决方案1】:

    lang 属性和实体的作用完全不同。

    lang 属性告诉解析器该文档是用什么人类语言编写的。例如,这允许搜索引擎判断它是否是一个好的文档呈现给 Finish 扬声器和屏幕阅读器软件以选择正确的发音图书馆。

    实体只是让您表示您无法以其他方式表示的字符。例如

    • 因为您无法键入键盘的字符
    • 因为保存文档的字符编码(例如 ASCII)不包括该字符。本世纪您应该几乎在所有地方都使用 UTF-8,不必担心这一点。
    • 因为该字符在 HTML 中将具有特殊含义(例如 <)。

    • 如果您知道文档文本将使用哪种语言编写,请始终使用 lang 属性
    • 始终对 HTML 中具有特殊含义的字符使用实体
    • 如果您可以合理地确定字符编码不会被破坏(大多数情况下您可能会这样),请使用文字字符,因为它们使用的字节更少并且在源代码中更易于阅读。

    【讨论】:

    • 感谢您的回答。它没有完全解决我的问题,但它为我指明了正确的方向。
    【解决方案2】:

    我的问题的根源实际上是字符编码。尽管所有文档都是用 UTF-8 定义的,但脚本不知何故无法识别它。通过告诉脚本输入文件(应该用实体修复)是 UTF-8 编码的,脚本再次正确运行。

    作为对标题中问题的回答:绝对确定文档与服务器兼容——是的,我应该使用实体编码(尽管我知道假设服务器允许 UTF-8 是昆汀暗示的一般相当安全的假设)。由于其他原因(与自动生成内容有关),我也应该使用lang 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2014-08-12
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多