对HTML实体何时使用十进制与十六进制表示法有一个很好的经验法则吗?
例如,非破坏连字符以十进制形式写为‑
,十六进制写为‑
。
这个answer表示十六进制用于Unicode;这是否意味着如果您在文档<meta charset="utf-8">
中使用<head>
标记,则应使用字符数?
偶尔,我会注意到实体字符被错误地呈现而不是它们代表的实体 - 例如,&
在电子邮件主题行或RSS标题中出现(而不是&符号)。十六进制或小数是否更好以避免这种情况?
最后一个考虑因素:使用十六进制或十进制可以影响角色的渲染清晰度(清晰度)吗?
答案 0 :(得分:25)
经验法则是:使用您喜欢的任何一种,但更喜欢十六进制。 ☺
在浏览器支持方面没有区别,也没有区别(支持小数引用的最后一个浏览器只在20世纪90年代死亡)。
正如@AlexW所描述的,由于编写字符代码标准的方式,十六进制引用比十进制更自然。但如果您发现十进制参考更方便,请使用它们。
此问题与meta
标记和字符编码无关。将字符引用引入HTML的主要原因是它们允许您完全独立于文档的编码输入字符。这包括在使用的编码中根本无法直接写入的字符。多亏了它们,您可以输入任何Unicode字符,即使字符编码是ASCII或其他一些有限的编码,如ISO-8859-1。
在过去,通常建议使用命名引用(或“实体引用”,因为它们在经典HTML中被正式调用),如果可能的话,因为像Ω
这样的引用,当字面显示时对用户而言,比Ω
或Ω
等引用更容易理解。就网络浏览器而言,这已经十多年没有关系了。但是例如电子邮件客户端可能是一种愚蠢的^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H在这方面不发达。它们可能例如在消息列表中显示引用,即使它们在查看消息时可以正确地解释它们。但似乎没有任何一致的行为可以指望。
答案 1 :(得分:5)
HTML(和XML)提供了三种编码特殊字符的方法:数字十六进制&
,数字十进制&
(又名“字符引用”)和名为&
(又名“实体”参考“)。几十年来,它们一直保持同样有效并得到所有主流浏览器的全力支持。它们适用于任何编码,但始终从Unicode集(与ASCII,ISO拉丁语和Windows拉丁语兼容,减去代码128-159)进行渲染。
所以这取决于个人偏好,还有一些值得注意的事情。
如果您在HTML中添加了正确的charset meta
标记,则根本不需要对特殊字符进行编码(& < > " '
除外,或者更常见的是,仅& <
文本)。例外是想要编码指定编码中不存在的字符。但是如果你使用UTF-8,你可以用Unicode代表任何东西。
对于索引10以下的任何字符,十进制都会更短。标签为	
,与	
相对,因此对于包含大量TSV数据的pre
标签可能是值得的。
命名引用是最容易使用和记忆的,特别是对于不同背景和技能组的开发人员共享的代码。 <
比<
更直观。至于其他人对相关性的评论,他们实际上仍然完全支持作为W3C标准的一部分,甚至已经扩展到HTML5。
使用命名或十进制引用可能不是最佳通用实践,因为这些名称仅限英语,并且对HTML是唯一的(即使XML缺少命名引用,减去“五大”)。大多数编程语言和字符表都使用十六进制编码,因此从长远来看,当您保持一致时,它会使事情变得更容易,更便携。虽然对于小型项目或特殊情况,但这可能并不重要。
答案 2 :(得分:4)
这些被称为numeric character references。它们派生自SGML,其数字部分引用您要显示的字符的特定Unicode code point。它们允许您表示Unicode的字符,即使您编写HTML的特定字符集没有您引用的字符。无论您使用十进制还是十六进制来引用代码点都无关紧要,除了非常旧的浏览器更喜欢十进制。 添加了十六进制支持,因为Unicode代码点以十六进制表示法引用,它使得查找代码点然后添加引用更加容易,而无需转换为十进制:
U+007D
=
}
回答你的问题:
这个答案说十六进制用于Unicode;这是否意味着十六进制 如果您使用的是
<meta charset="utf-8">
标记,则应该使用 文件?
您必须了解UTF-8与ASCII / ISO-8859-1向后兼容。所以UTF-8的前256个字符在ASCII和UTF-8中是相同的。对于UTF-8,Hex更容易,因为截至2013年,有1,114,112个Unicode代码点。因此,编写�
比编写�
等更容易。