这让我困惑了一段时间。随着UTF-8作为Web开发的事实标准的出现,我不确定在哪些情况下我应该使用HTML实体,哪些应该使用UTF-8字符。例如,
&emdash;
)&
)¾
)请详细说明这个问题。我们将不胜感激。
答案 0 :(得分:109)
根据我收到的评论,我进一步研究了这个问题。目前似乎最佳做法是放弃使用HTML实体并使用实际的UTF-8字符。列出的原因如下:
只要您的网页编码正确设置为UTF-8,就应该使用实际字符而不是HTML实体。我阅读了几个关于这个主题的文档,但最有帮助的是:
来自 UTF-8:字符编码的秘密文章:
维基百科是一个很好的案例研究 最初使用的应用程序 ISO-8859-1,但切换到UTF-8时 它的支持变得太麻烦了 外语。 机器人现在 实际上是通过文章和 将字符实体转换为它们的 相应的真实字符 用户友好和 搜索性强>
那篇文章也提供了一个涉及中文编码的好例子。以下是为了懒惰的缩写示例:
<强> UTF-8:强>
這兩個字是甚麼意思
HTML实体:
這兩個字是甚麼意思
UTF-8和HTML实体编码对我来说都毫无意义,但至少UTF-8编码可识别为外语,并且它将在编辑框中正确呈现。本文继续讨论HTML实体编码版本:
对我们这些人来说非常不方便 谁知道什么性格 实体是完全无法理解的 对那些没有的穷人!即便是 稍微用户友好, 像“可理解”的字符实体 &安培;峰;将离开用户 对学习HTML不感兴趣 挠挠头。在另一 如果他们在编辑框中看到θ, 他们会知道这是特别的 性格,并相应地对待, 即使他们不知道如何写 那个角色本身。
正如其他人所说,你仍然必须使用HTML实体来保留XML字符(&符号,小于号,大于号)。
答案 1 :(得分:73)
如果编辑器支持Unicode,通常不需要使用HTML字符实体。在以下情况下,实体非常有用:
代码比相应的空格字符更清晰。<
,&
或"
等特殊字符。答案 2 :(得分:5)
我不会将UTF-8用于容易在视觉上混淆的字符。例如,很难将emdash与减号区分开,尤其是与空间区分不间断的空间。对于这些角色,一定要使用实体。
对于易于理解的字符(例如上面的中文示例),如果您愿意,请继续使用UTF-8。
答案 3 :(得分:5)
我个人用utf-8做了很长时间,然而,在html页面中,你总是需要将&符号(&amp;),大于(&gt;)和小于(&lt;)字符转换为他们的等效实体,&amp; amp;,&amp; gt;和&amp; lt;
此外,如果您打算使用utf-8文本进行一些编程,还有一些需要注意的事项。
答案 4 :(得分:4)
实体可能会向您提供与正确理解编码的脑死客户的一些兼容性。我不相信它包含任何当前的浏览器,但你永远不知道其他类型的程序可能会让你受伤。
更有用的是,HTML实体可以保护您免受自己的错误的影响:如果您在服务器上配置错误,并且您最终使用的HTTP标头提供了ISO-8859-1
和{{1}的页面标签上写着META
,至少你的&amp; mdash; es将永远有效。
答案 5 :(得分:4)
当您想要生成将(动态)包含在具有(多个)不同编码的页面中的内容时,HTML实体非常有用。例如,我们有白标内容,包含在ISO-8859-1和UTF-8编码的网页中......
如果从/到UTF-8的字符集转换不是那么大的不可靠的混乱(你总是偶然发现一些字符和一些不能正确转换的工具),那么标准化UTF-8就是要走的路
答案 6 :(得分:2)
如果您的页面在utf-8中正确编码,则您不需要html实体,只需直接使用您想要的字符即可。
答案 7 :(得分:2)
以前的所有答案对我都有意义。
此外:它主要取决于您打算使用的编辑器和文档语言。编辑器的最低要求是它支持文档语言。这意味着,如果您的文本是日语,请注意使用不显示它们的编辑器(即文档本身没有实体)。如果它是英文的,你甚至可以使用一个旧的类似vim的编辑器,并仅将实体用于相对的很少和复制;和朋友。 当然:&amp; gt;对于&gt;和其他HTML特价仍然需要逃脱。 但即使使用其他拉丁语1种语言(德语,法语等)写ä是一种痛苦,你知道在哪里......
此外,我个人为不可见字符编写实体,并且看起来与标准ascii类似,因此容易混淆。例如,u1173(在某些字符集中看起来像破折号)或u1175,看起来像垂直条。在任何情况下我都会使用实体。