有什么理由在角色本身上使用 HTML 实体吗?

Is there any reason to use HTML entities over the characters themselves?

例如,假设我想在我的页面标题中添加一个破折号,如下所示:

Home – My Site

是否有任何理由使用 – 而不是将字符 放入我的 HTML 文件中?

是的。当您按原样使用实际实体时,某些浏览器和操作系统不喜欢它...偶尔在 Mac 上输入破折号时,它只会乱码或看起来像 [=12= 上的空方块] 机器。使用实体更安全:D

如果您要使用的角色存在 HTML 实体,您应该使用 HTML 实体。这确保它按预期显示。

http://www.danshort.com/HTMLentities/index.php?w=latin

如果你想渲染会扰乱 HTML 解析器的字符(<>,以及 & 本身),那绝对是需要的。

如果将字符集设置为 UTF-8,则可以使用其他原始 UTF8 字符。

<meta charset='utf-8'>

然而,一些较旧的浏览器不理解此标记,因此它们可能无法正确呈现 UTF-8 字符。

我还想指出 - HTML 实体有时用于告诉浏览器呈现概念,而不是特定字符。一些浏览器更喜欢以比 Unicode 字符更具可读性的方式呈现实体,例如 Lynx 将 &trade; 呈现为 (tm) 而不是

If you use the less than (<) or greater than (>) signs in your text, the browser might mix them with tags. W3Schools.com

除非出现特定问题,否则我可能会使用的唯一其他 HTML 实体是 &nbsp;&amp;