解释为什么Chrome以不同于任何其他字体的方式解释Arial表情符号 - 它添加了性别符号

时间:2018-02-12 23:18:51

标签: google-chrome emoji font-family

有人可以解释为什么有些表情符号在使用Chrome和Arial字体时会添加性别符号吗? Arial facepalm renders with gender symbol in Chrome

chrome版本:63.0.3239.132

这是html

<!DOCTYPE html>
<html>
<style> 
.emoji {
  font-family: Times;
}
</style>
<body>

<p style="font-family: Arial">Arial Facepalm with symbol ‍♂️</p>
<p style="font-family: Arial">Arial Facepalm without symbol ‍️</p>
<p class=emoji>Times Facepalm with symbol ‍♂️‍</p>
<p class=emoji>Times Facepalm without symbol ‍</p>
<p>No font Facepalm with symbol ‍♂️</p>
<p>No font Facepalm without symbol ‍</p>

</body>
</html>

1 个答案:

答案 0 :(得分:4)

我假设您从Apple设备界面中选择了表情符号,因为性别符号是粘贴的字符串中固有的。它实际上是四个Unicode字符:

  • 一个通用的facepalm角色:U+1F926 &#x1F926;
  • 零宽度木匠:U+200D &#x200D;(胶水)
  • 男性性别符号:U+2642 &#x2642;(默认)
  • 变体选择器:U+FE0F &#xFE0F;(似乎多余)

用女性符号替换性别,并且你有一个女人的脸掌#34;

&#x1F926;&zwj;&#x2640;

示例:https://codepen.io/anon/pen/RQQvPW

但正如您在Chrome中发现的那样 - not with Arial - 显然只有Arial,而且只有我测试过的Chrome。

虽然我可以回答为什么符号在那里,但我无法告诉您为什么Chrome无法以此字体呈现Unicode复合规则。我只能猜测它是Chrome中的一个错误,并且会在某些时候修复。

如果你需要在Arial中渲染男性脸部手掌,你仍然可以。只需使用通用基本字符:&#x1F926;。如果你需要一个女性表情符号,那么你就会陷入困境。