何时应该使用HTML实体

这一直困扰着我一段时间。 随着UTF-8作为Web开发事实上的标准的出现,我不确定在哪些情况下,我应该使用HTML实体,哪些应该只使用UTF-8字符。

示例:em短划线,&符号等

请澄清这个问题。 将不胜感激。

如果您的编辑器支持Unicode,则通常不需要使用HTML字符实体。 在以下情况下,实体可能有用:

  • 您的键盘不支持您需要键入的字符。 例如,许多键盘没有em-dash或版权符号。
  • 你的编辑器不支持Unicode(几年前很常见,但可能不是今天)。
  • 你想在源代码中明确说明正在发生的事情。 例如,   代码比相应的空白字符更清晰。
  • 您需要转义HTML特殊字符,如<& ,或"

根据我收到的意见,我进一步研究了这一点。 看来目前最好的做法是放弃使用HTML实体,而是使用实际的UTF-8字符 。 列举的原因如下:

  1. UTF-8编码更易于阅读和编辑,以便理解字符的含义和知道如何input。
  2. 对于那些不理解它们的人来说,UTF-8编码与HTML实体编码一样无法理解,但是他们具有渲染为特殊字符的优点,而不是难以理解十进制或hex编码。

只要你的页面的编码设置为UTF-8,你应该使用实际的字符而不是HTML实体。 我读了几个有关这个话题的文件,但最有帮助的是:

  • UTF-8:字符编码的秘密
  • 维基百科特殊字符帮助

UTF-8:字符编码的秘密文章:

对于最初使用ISO-8859-1的应用程序来说,维基百科是一个很好的案例研究,但当它变得过于繁琐以至于不能支持外语时,切换到UTF-8。 现在,机器人会通过文章并将angular色实体转换为相应的真实angular色,以方便用户使用和search

那篇文章也给出了一个涉及中文编码的好例子。 这是为了懒惰而缩写的例子:

UTF-8:

這兩個字是甚麼意思

HTML实体

&#36889;&#20841;&#20491;&#23383;&#26159;&#29978;&#40636;&#24847;&#24605;

UTF-8和HTML实体编码对我来说都没有意义,但至lessUTF-8编码是可识别的外语 ,它将在编辑框中正确显示。 文章继续说下面的HTML实体编码版本:

对于我们这些真正知道字符实体的人来说,这是非常不方便的,对于那些不喜欢的用户来说,完全是无法理解的! 即使是稍微用户友好的,“易懂”的字符实体,如θ; 会留下对学习HTML不感兴趣的用户。 另一方面,如果他们在编辑框中看到θ,他们就会知道它是一个特殊的字符,并相应地处理它,即使他们不知道如何自己写这个字符。

正如其他人所指出的,您仍然必须使用HTML实体来保留XML字符(和号,小于,大于)。

实体可能会向您购买一些与无法正确理解编码的脑残客户的兼容性。 我不相信包含任何当前的浏览器,但你永远不知道其他types的程序可能会打你。

更有用的是,HTML实体保护你免受你自己的错误:如果你错误地configuration服务器上的东西,并最终提供一个HTTP标头,它是ISO-8859-1META标签,说它是UTF-8 ,至less你们会一直工作。

我不会使用UTF-8来容易混淆视觉上的字符。 例如,很难区分从空间减去,尤其是不破坏的空间。 对于这些字符,绝对使用实体。

对于易于理解的字符(比如上面的中文例子),如果你愿意,可以继续使用UTF-8。

当你想要生成包含(几个)不同编码的页面时,HTML实体是非常有用的。 例如,我们有包含在ISO-8859-1和UTF-8编码网页中的白色标签内容…

如果从/到UTF-8的字符集转换不是那么大的不可靠的混乱(你总是偶然发现一些字符和一些不能正确转换的工具),那么在UTF-8上进行标准化就是要走的路。

就我个人而言,我在很长一段时间内都是用utf-8做的,但是在html页面中,你总是需要将&符号,大于(>)和小于(<)的字符转换为等价的实体,&amp; &GT; 和&lt;

另外,如果您打算使用utf-8文本进行编程,则需要注意几点。

  • 在使用实体时,XML需要一些额外的行来validation。
  • 有些库与utf-8不兼容。 例如,一些Linux发行版中的PHP在正则expression式库中全面支持utf-8。
  • 限制使用html实体的文本中的字符数量是很困难的,因为单个实体使用许多字符。 另外总有将实体削减一半的风险。

如果你的页面在utf-8中正确编码,你应该不需要html实体,直接使用你想要的字符。

所有以前的答案都对我有意义。

另外:它主要取决于你打算使用的编辑器和文档语言。 作为编辑的最低要求是它支持文档语言。 这意味着,如果您的文本是日文的,请小心使用不显示它们的编辑器(即文档本身没有实体)。 如果是英文的话,你甚至可以使用一个老的类似vim的编辑器,只使用相对较less和复制的实体; 和朋友。 当然:&gt; for>和其他HTML特殊项目仍然需要转义。 但即使用其他拉丁语言(德语,法语等)写ä是一个痛苦,你知道哪里…

另外,我亲自为隐形字体和看起来类似于标准的字体编写实体,因此容易混淆。 例如,u1173(看起来像一些字符中的短划线)或u1175,看起来像竖条。 我会在任何情况下使用实体。