实体代码和lang属性:我应该同时使用吗?

时间:2015-07-31 13:33:48

标签: html xml lang hyphenation

我正在用芬兰语撰写标记文件。

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

“问题”来自这样一个事实:标记是在没有实体的情况下编写的,我有一个脚本,它应该通过使用正则表达式替换实体的scandic字母 - 在定义了lang属性之后,脚本看起来不像继续工作(据说在添加lang属性之前它已经完成了。)

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

2 个答案:

答案 0 :(得分:0)

lang属性和实体完成不同的工作。

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

实体只是让你代表你无法代表的角色。 e.g。

  • 因为您无法键入键盘的字符
  • 由于编码文档的字符保存在(例如ASCII)中,因此不包含该字符。本世纪你应该在任何地方使用UTF-8,不应该担心这一点。
  • 因为该字符在HTML中具有特殊含义(例如<)。
  • 如果您知道文档的文本将以何种语言编写,请始终使用lang属性
  • 始终将实体用于HTML中具有特殊含义的字符
  • 使用文字字符,如果您可以合理地确定字符编码不会受到损坏(您可以在大多数情况下),因为它们使用更少的字节并且更容易在源代码中阅读。

答案 1 :(得分:0)

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

作为标题中问题的答案:绝对确保文档与服务器兼容 - 是的,我应该使用实体编码(虽然我理解假设服务器允许UTF-8是昆汀暗示的一般安全假设)。由于其他原因(与自动内容生成相关),我还应该使用lang属性。