为什么表情符号的unicode变体(文本)选择器仅适用于表情符号的子集?

时间:2019-02-08 12:11:27

标签: unicode emoji

我已阅读this answer的相关问题,有关将图形表情符号转换为文本表示形式的方法。我已经测试过了,而且效果很好。

我想要一些与魔术相关的角色,我可以按照自己的方式使用CSS对其进行样式化。最好是魔杖,但该表情符号尚不可用,因此我决定选择Mage

那是我的问题开始的地方。我已经有一种机制可以将表情符号转换为文本,并且我有想要的表情符号,但是这对似乎不兼容。我已经在Firefox和Chrome中对其进行了测试。两者总是显示图形表示。法师表情符号在Notepad ++中显示为文本,因此并不是不存在这种表示法(我认为它应该总是可用,而图形版本可能不支持)。它不起作用的原因可能是什么?还有其他强制文本版本的方法吗?

这是我尝试过的示例(结果::︎︎):

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
	font-size: 5em;
}
</style>
</head>
<body>
&#x01F9D9;&#xFE0E; &#x01F3A9;&#xFE0E; &#x002728;&#xFE0E; &#x01F354;&#xFE0E; &#x231b;&#xFE0E;
</body>
</html>

1 个答案:

答案 0 :(得分:0)

表情符号变体选择器是Unicode通用变体序列机制的扩展。 Only those sequences explicitly listed as part of the standard are valid。任何支持特殊翻译的系统都不能声称自己符合Unicode。

并非为所有表情符号字符定义表情符号变体序列,而是仅定义了认为必要的那些字符。通常,这些字符源自某些非表情符号来源(Zapf Dingbats,Wingdings等),但也用作表情符号。支持这些变体序列的所有字符都列在this chart(以及the respective data file)中。在您作为示例列出的五个字符中,仅允许沙漏使用变体选择器,而其他四个则必须保持不受影响。

如果您完全控制页面的样式,则可以提供自己的黑白字体用于表情符号字符,然后该字体将覆盖系统的默认表情符号字体。通常,当您想将表情符号用作常规文本字符(即使具有有效的变体选择器)时,这也是一个好主意,因为并非每个平台都必须同时支持文本样式和表情符号样式的字体。