我可以看到这些字符是彩色图标:

🌍🌎🌏✅️


它仅对Firefox有效。如果看不到彩色字符,则在我的系统上看起来像这样(可能取决于字体):



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







并且有完整的文件。我还对它们进行了document.title动画处理,演示了它们甚至可以在HTML之外工作。

那是什么?

评论

评论不作进一步讨论;此对话已移至聊天。

我正在使用Opera,但我绝对看不到您在图像“看起来像这样”中所显示的样子。所以,我很想在您的问题之外进行编辑,但这并不是非常重要...

@StephanBijzitter:您和其他人看不到图标的事实是图像很重要的原因。不要删除它。

youtube.com/watch?v=tITwM5GDIAI

关键字:OpenType-SVG(stateofwebtype.com/#OpenType-SVG,color.typekit.com)

#1 楼

这些字符是Unicode标准认可的表情符号,Unicode标准定义了每个字符所代表的含义。

每个操作系统和每个应用程序对它们的确切外观都不同,但是都描述相同的事物。 />
地球(🌏)是Unicode字符1F30F,被称为EARTH GLOBE ASIA-AUSTRALIA。第二个(✅)称为WHITE HEAVY CHECK MARK,它的编码为Unicode2705。以这种方式,有成千上万个表情符号,其中每个应用程序都支持,有些则较少。在此处查看完整列表http://www.fileformat.info/info/emoji/browsertest.htm

评论


它们的确切外观取决于您使用的字体,因为字体是定义字符外观的事物,而表情符号只是字符。

–totymedli
17年2月1日在13:17

实际上,第二个是(正如您所说的)结合了VARIATION SELECTOR-16的WHITE HECKY CHECK MARK。 the从问题中复制的looks看起来像是绿色框中的白色对勾,,从您的答案中复制的看起来像是带有黑框的白色对勾,当我在带有黑框的✅白色对勾后粘贴变体选择器时,绿框内的相同✅️白色对勾标记。为了清晰起见,此评论的屏幕截图

– Stijn
17年2月1日在18:25



由于字体支持不佳,他们可能没有注意到。在我的浏览器中,绿色背景不显示。

– user2357112支持Monica
17年2月1日在18:31

@Stijn,对我来说,在Chrome浏览器中,它们都是绿色方框内的选中标记i.imgur.com/Cv5RTFM.png

– Yisroel技术
17年2月1日在18:47

这没有回答问题,这是关于它如何在Firefox中呈现,而不是为什么出现了表情符号的问题。

–oldmud0
17年2月4日在2:45

#2 楼

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

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

评论


如果Win10中原生支持分层的颜色字形,为什么它们在例如Edge中仍然显示为单色?

–巴斯
17年2月2日在8:29

@Bas,正如我们通过Edge开发人员工具看到的那样,未选择Segoe UI Emoji显示此页面(其他单色字体则显示)。将字体插入font-family属性可以解决问题:i.imgur.com/IXiNC86.png

– aitap
17年2月2日在15:09

最新的Edge预览中提供@Bas彩色表情符号支持,并将在下一个公共版本中提供。

–乔西亚·凯勒(Josiah Keller)
17年2月2日在18:36

奇怪的是,我的Ubuntu 16.10机器上的Firefox显示黑白字形(我后来启动了Win10,并确认它们确实是彩色的)

–卢克
17年2月3日在17:02

@Luke Ubuntu已为Unity 8计划了颜色字形支持。

– stommestack
17年2月4日在19:56

#3 楼

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

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


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


因此,与ASCII(仅有很少的ASCII)不同,Unicode包含多个符号集。现在,尽管已经标准化了什么代码应该代表什么字母或符号,但是Unicode并未完全指定该符号的外观。因此,所有操作系统都有其自己的符号图形集,以看起来不同。这可能包括某些颜色,某些轮廓或黑白。

此外,字体对于这些符号也可能具有自己的一套艺术风格,以便字符可以与应用的感觉。即使在应用程序内部,您可能也会使用不同的图像集来拥有不同的页面。因此,您可以像其他方式与角色进行交互,但是看起来却有所不同。

您可以在此处看到表情符号(对于(,跳至#1483)在各种平台上的外观如何。

评论


128,000是很多要绘制的图标。我不怪艺术家用黑白图标代替全彩。

–丹
17年2月3日,16:10

@ Dan,128,000是字符数,而不是符号。这些字符还包括语言字符,对于日语或普通话这样的语言字符数量巨大。

–pulsejet
17年2月3日在16:49

@丹,我只是说没有128,000个必须着色的符号。并不是说没有多少可以着色,但这远不及128,000。

–pulsejet
17年2月3日在20:07

啊,我并不是要暗示它们都应该是彩色的,仅仅是要画出很多东西就足以让我不想使它们复杂化(即着色)。哈哈。

–丹
17年2月3日在21:25

@Dan没有人画那么多代码点,并且几乎没有字体包含所有Unicode代码点的字符。当当前字体不包含字形时,字体渲染器将替换另一种字形。为什么没有包含所有Unicode字形的字体?

–phuclv
17-2-4在1:06



#4 楼

这些字符与其他字符“起作用”的方式相同,例如aøλଶୁ起作用。字符由一个抽象数字表示,该数字用于选择和索引可用字体以显示该字符。

在您的系统上,Firefox似乎具有自己的呈现功能,并且可以访问包含以下内容的字体🌍🌎🌏✅️的字形。其他应用程序通常会使用X服务器提供的字体(或等效字体),因此仅限于您已安装或指向服务器的字体(例如xset +fp或类似字体)。

彩色字体是最近的并且仍是相当实验性的发展;传统上,字体字形是一种可以在任何背景下合成的颜色。

#5 楼

这些仅仅是Unicode字符,因此只要系统上提供了字体和字形,任何支持Unicode的文本框都可以毫无问题地显示它们。但是,每个Unicode字符的外观都取决于它们所使用的渲染器和字体。
传统上,字符仅用一种颜色填充。彩色表情符号是一个新生事物,因此它们的支持因平台而异。已经发明了各种用于着色的技术,例如嵌入式PNG,SVG或分层蒙版。但是所有这些都需要一个新的渲染器,而旧的OS中不提供该渲染器。
因此,从50.0版开始,Firefox嵌入了自己的渲染器和字体以支持彩色表情符号。您可以在发行说明中找到它。

已更改
为没有本机Emoji字体(Windows 8.0及更低版本和Linux)的操作系统添加了内置的Emoji设置

可以在%FirefoxInstallDir%\fonts\EmojiOneMozilla.ttf中找到字体文件