在HTML文档中使用字符引用的最佳做法是什么?

时间:2011-11-29 12:46:48

标签: html character-encoding seo security meta-tags

这可能看起来像是一个主观问题,但我正在寻找的是一些硬性和快速规则,以便何时使用以及何时不使用HTML字符引用,特别是考虑到字符集:

<meta http-equiv="content-Type" content="text/html; charset=utf-8" />

我正在公司网站上从其他人离开的地方开始开发,看起来前面的开发人员编写了除A-Z和0-9以外的所有内容作为HTML字符引用。例如,每个逗号都被编码为&#44;,我不确定这是否是一件好事。

具体是SEO方面的以下不好吗?

<meta name='keywords' content='eriks industrial services&#44; industrial products&#44; industrial services&#44; eriks&#44; uk&#44; european&#44; leader&#44; european leader&#44; eriks&#44; power transmission&#44; power&#44; bearings'/>

具体而言必须始终哪些字符被编码为字符引用?

为了保持一致性,最好避免&name;并尽可能使用&#DD;

2 个答案:

答案 0 :(得分:2)

当文档创建/编辑软件,数据存储或传输通道无法存储Unicode数据或保留其编码的字节流时,应使用字符引用。

实际上,这可能意味着需要使用遗留应用程序或遗留配置或传统传输协议来完成工作。在这种情况下,工具链的某些部分可能仅支持8位编码,甚至仅支持ASCII。在这种情况下,不可能存储Unicode字符,因此在除了ASCII字符之外的所有字符引用上都可能会有用,因为这样可以避免在从8位编码切换到Unicode时可能出现的令人讨厌的编码转换问题。使用命名实体而不是字符引用稍微更具可读性,但它不必要地使XML兼容性或迁移到XML变得复杂,因为使用实体需要存在DOCTYPE声明或嵌入式DTD。这不适用于在XML中预定义的&lt;&amp;&quot;&apos'&gt;

如果您正在使用现代环境,那么通常首选使用Unicode字符,因为通常(文本)数据可以在不解析/解释的情况下使用(例如直接从文本中搜索),因此更容易使用导致更易读,更容易维护的代码。

必须编码的字符为<&以及"',当它们出现在属性值中且相同时character用作属性值分隔符。理论上,当它>字符串的一部分出现并不意味着结束CDATA部分时,你也应该转义]]>,但这仅适用于SGML兼容性,因此通常不需要。应使用实体而不是字符引用来转义这些字符。转义&的需求也适用于<a href="...">中的网址值,遗憾的是,这些网址值很常被遗忘。

答案 1 :(得分:1)

至于我编码字符意味着页面将更易于访问e.i.更多浏览器将正确显示它...

我很懒,通常会输入unicode字符(如√,∞,æ),如果我需要的话,它们可以正常工作。

如果您遇到问题 1)此数据无法存储 2)不能转让 3)无法显示