这些图标如何工作:???

Tom*_*ica 125 firefox unicode

我可以将这些字符视为彩色图标:

??
Run Code Online (Sandbox Code Playgroud)

它只适用于我的 Firefox。如果您看不到彩色字符,则在我的系统上看起来像这样(可能与字体有关):

图片说明

我什至可以在萤火虫和标签标题中看到它们:

图片说明

图片说明

图片说明

并且他们的完整档案。我还和他们一起做了这个document.title 动画,这表明他们甚至可以在 HTML 之外工作。

那是什么?

Yis*_*ech 144

这些字符是由 Unicode 标准识别的表情符号,该标准定义了每个字符所呈现的内容。

它们的确切外观因每个操作系统和每个应用程序而异,但都描绘了相同的事物。

地球 () 是 Unicode 字符1F30F称为 EARTH GLOBE ASIA-AUSTRALIA。第二个 (?)称为 WHITE HEAVY CHECK MARK,是 Unicode 2705。

通过这种方式,有数以千计的表情符号,有些是每个应用程序都支持的,有些则支持较少。在此处查看完整列表http://www.fileformat.info/info/emoji/browsertest.htm

  • 它们的确切外观取决于您使用的字体,因为字体是定义字符外观的东西,而表情符号只是字符。 (56认同)
  • 实际上,第二个是(如您所说)**WHITE HEAVY CHECK MARK** 结合 [VARIATION SELECTOR-16](http://www.fileformat.info/info/unicode/char/fe0f/index.htm) . ✅️ 从问题中复制看起来像绿色框中的白色复选标记,从您的答案复制看起来像带有黑色边框的白色复选标记,当我将变体选择器粘贴到您的 ✅ 带有黑色边框的白色复选标记之后时,我得到相同的 ✅️ 绿色方框中的白色复选标记。[**为清晰起见,此评论的屏幕截图**](https://i.stack.imgur.com/veXqS.png) (23认同)
  • @Stijn,对我来说,Chrome 中的两个都是绿色框选标记 http://i.imgur.com/Cv5RTFM.png (8认同)
  • 这并没有回答这个问题,它是关于*如何*在Firefox中呈现的,而不是*为什么*表情符号在那里。 (7认同)
  • 由于字体支持不佳,他们可能没有注意到。在我的浏览器上,绿色背景没有出现。 (4认同)
  • @totymedli 从技术上讲是正确的,但要完全技术上准确,如果当前字体没有表情符号代码点,则确切外观还取决于系统使用的后备字体。然而,更实际的是,很少有字体实现表情符号代码点——99% 的时间你看到表情符号字符,你正在查看操作系统的默认表情符号字体。**因此,“每个操作系统的确切外观都不同”在技术上并不正确,而是对当今表情符号渲染的 _for-all-practical-purposes-accurate_ 评估。** (3认同)

ait*_*tap 74

Firefox为这些表情符号字符使用了一种特殊字体。它采用了 TrueType 字体的一个相对较新且很少使用的功能:分层颜色字形。除此之外(即具有带有预着色字形的特殊字体)这些图标是普通的 Unicode 字符。

Windows仅在 8.1 及更高版本中对这些彩色字体提供本机支持,因此 Firefox 私下安装 EmojiOne 并在 Windows 7 中为其使用自己的字体渲染器。这也解释了大多数其他应用程序中缺少彩色表情符号图标的原因。

  • @Bas,正如我们通过 Edge 开发人员工具所看到的,Segoe UI 表情符号没有被选中来显示此页面(其他单色字体可以)。将字体插入 font-family 属性就可以了:http://i.imgur.com/IXiNC86.png (5认同)
  • @Bas 彩色表情符号支持在最新的 Edge 预览版中,并将在下一个公开版本中提供。 (4认同)
  • 如果 Win10 中有对分层彩色字形的本机支持,为什么它们仍然以单色显示,例如,Edge? (2认同)
  • @Luke Ubuntu 计划为 Unity 8 提供颜色字形支持。 (2认同)

pul*_*jet 25

简而言之:Firefox 使用一种字体,其中这些符号看起来像它们的样子。

这些字符是 Unicode 标准的一部分。

Unicode 是一种计算行业标准,用于对世界上大多数书写系统中表达的文本进行一致的编码、表示和处理。与通用编码字符集 (UCS) 标准一起开发并发布为 Unicode 标准,最新版本的 Unicode 包含超过 128,000 个字符的曲目,涵盖 135 个现代和历史脚本,以及多个符号集。-维基百科

因此,与 ASCII(数量很少)不同,Unicode 包含多个符号集。现在,虽然它已经标准化了什么代码应该代表什么字母或符号,但 Unicode 并没有完全指定符号应该是什么样子。因此,所有操作系统都有自己的一套符号图形,看起来各不相同。这可能包括一些被着色和一些只是轮廓或黑白。

此外,字体也可以为这些符号拥有自己的艺术集,以便字符可以与应用程序的感觉相匹配。即使在应用程序内部,您也可能拥有使用不同图像集的不同页面。因此,您可以像其他方式一样与角色互动,但它看起来会有所不同。

您可以在此处查看表情符号(for,跳至 #1483)在各种平台上的准确外观。

  • 128,000 是要绘制的*很多* 图标。我不责怪艺术家使用黑白图标而不是全彩色。 (4认同)
  • @Dan 没有人绘制那么多代码点,而且几乎没有字体包含所有 Unicode 代码点的字符。当当前字体不包含这些字形时,字体渲染器将从另一种字体[替换](https://en.wikipedia.org/wiki/Font_substitution) 字形。[为什么没有包含所有 Unicode 字形的字体?](http://stackoverflow.com/q/34732718/995714) (2认同)