我可以在没有后备的情况下使用 HTML-entities 吗?

Can I use HTML-entities without a fallback?

我想知道,我是否可以使用 html-实体,例如

<h5><em>⇆</em> Headline</h5>

如果我使用 utf-8 没有任何回退? (因为在我的系统上这完全没问题)。来自 http://dev.w3.org/html5/html-author/charref 的所有这些字符真的都默认嵌入到 utf-8 字符集中吗?

我该如何正确使用它,就像这样:

<h5><em>⇆</em> Headline</h5>

那个

<h5><em>&lrarr; </em> Headline</h5>

<h5><em>&#8646;</em> Headline</h5>

这里有两个不同的问题:

  1. 让浏览器了解您想要的字符
  2. 在视觉上渲染该角色

对于第一点,有两种选择:

  1. 按原样直接嵌入字符,为此您需要在可以对该字符进行编码的编码中提供 HTML。是的,“⇆”是一个Unicode字符,可以用任何Unicode编码进行编码。 UTF-8 是这里的最佳选择。然后浏览器只需要知道文档是用 UTF-8 编码的,它就能正确读取和理解字符。
  2. 将角色嵌入为 HTML 实体。 HTML 实体是一种仅使用 ASCII 字符嵌入任意字符的方法,例如&lrarr;。要对此进行编码,您选择的编码只需要能够编码 &lra;,这些都是非常标准的字符在任何编码中。浏览器将这个特殊的字符序列理解为字符“⇆”。通过将字符嵌入为 HTML 实体,您可以在很大程度上忽略正确管理编码的复杂性,但它会使您的源代码相当不可读。在这个时代你不应该这样做。

    无论您是使用 命名实体 (&lrarr;) 还是通过其 Unicode 代码 (&#8646;) 引用字符都没有关系,它们两者的结果相同。

处理完这个之后,字符需要实际 呈现 作为屏幕上的字形。为此,需要适当的 font。您必须测试是否大多数目标受众使用的系统默认安装了包含此字符的字体。您还可以向包含此字符的浏览器提供您自己的字体 web font.