这已经使我困惑了一段时间。随着UTF-8成为Web开发中的实际标准,我不确定在哪种情况下应该使用HTML实体,对于哪种情况我应该仅使用UTF-8字符。例如,
- 破折号(–,
&emdash;
) - &符(&,
&
) - 3/4分数(¾,
¾
)
请阐明这个问题。将不胜感激。
这已经使我困惑了一段时间。随着UTF-8成为Web开发中的实际标准,我不确定在哪种情况下应该使用HTML实体,对于哪种情况我应该仅使用UTF-8字符。例如,
&emdash;
)&
)¾
)请阐明这个问题。将不胜感激。
Answers:
如果您的编辑器支持Unicode,则通常不需要使用HTML字符实体。在以下情况下,实体可能会很有用:
代码比相应的空白字符更清晰。<
,&
或"
。
而不是实际的空白字符,部分原因是Firefox将U + 00A0转换为U + 0020形式。因此,在这种情况下使用实体是确保Firefox用户每次编辑源时都不会弄乱源的唯一方法。
<
常常需要转义,而不是>
(并且"
不需要在属性值内部转义)。
&
应始终使用而不是&
?是否有一个原因?
根据收到的评论,我对此进行了进一步的研究。目前看来,最佳做法是放弃使用HTML实体,而改用实际的UTF-8字符。列出的原因如下:
只要页面的编码正确设置为UTF-8,就应该使用实际字符而不是HTML实体。我阅读了有关此主题的一些文档,但最有帮助的是:
从UTF-8:字符编码的秘密文章:
对于最初使用ISO-8859-1的应用程序来说,Wikipedia是一个很好的案例研究,但是当它变得过于笨拙以致无法支持外语时,便切换为UTF-8。Bot现在实际上将浏览文章并将字符实体转换为它们相应的真实字符,以便于用户友好和可搜索。
那篇文章还给出了一个很好的例子,涉及中文编码。这是出于懒惰的缩写示例:
UTF-8:
這兩個字是甚麼意思
HTML实体:
這兩個字是甚麼意思
UTF-8和HTML实体编码对我来说都是没有意义的,但是至少UTF-8编码可以识别为外语,并且可以在编辑框中正确呈现。本文继续对HTML实体编码版本说以下内容:
对于我们当中那些真正知道角色实体是什么的人来说,这极为不便,而对于那些不知道这些角色的贫穷用户来说,这是完全不明白的!甚至是稍微更人性化的“难以理解”的字符实体,例如&theta;。会让对学习HTML不感兴趣的用户挠头。另一方面,如果他们在编辑框中看到θ,他们就会知道这是一个特殊字符,即使他们自己不知道如何写该字符,也要相应地对待它。
正如其他人指出的那样,对于保留的XML字符(与号,小于号,大于号),您仍然必须使用HTML实体。
&entity;
在带有已声明的UTF-8字符集的HTML文档中使用语法没有任何风险或无效,对吗?尽管出于您列出的原因,普通的UTF-8字符更好,但在同一文档中仍然有一些HTML实体并没有问题吗?
就个人而言,很长一段时间以来我都在utf-8中执行所有操作,但是,在html页面中,您始终需要将与号(&),大于(>)和小于(<)字符转换为它们的等效实体&amp ;、 &gt; 和&lt;
另外,如果您打算使用utf-8文本进行一些编程,则需要注意一些事项。
实体可能会为您与无法正确理解编码的大脑瘫痪的客户提供一些兼容性。我不认为它会包含任何当前的浏览器,但是您永远都不知道还有哪些其他类型的程序可以为您服务。
不过,更有用的是HTML实体可以保护您免受自己的错误的影响:如果您在服务器上配置错误,最终将为页面提供HTTP标头(标为)ISO-8859-1
和META
标记为标UTF-8
(至少)。将始终有效。
&mdash
即使标头配置不正确,也可以正确显示es,从而更难检测到问题。
如果您的网页在utf-8中正确编码,则您不需要html实体,只需直接使用所需的字符即可。
先前的所有答案对我来说都是有意义的。
另外:这主要取决于您打算使用的编辑器和文档语言。对编辑器的最低要求是它支持文档语言。这就是说,如果您的文字是日语,请当心不要使用不显示文字的编辑器(即文档本身没有实体)。如果是英文,您甚至可以使用类似vim的旧编辑器,并且仅将实体用于相对很少的&copy;。和朋友。当然:&gt; for和其他HTML特殊功能仍需要转义。但是,即使使用其他拉丁语1语言(德语,法语等),书写ä还是很痛苦,因为您知道在哪里...
另外,我亲自为看不见的字符以及看起来与标准ascii类似的字符编写实体,因此很容易混淆。例如,有u1173(在某些字符集中看起来像破折号)或u1175,看起来像是竖线。无论如何,我都会使用实体。