为什么有些网站将表情符号呈现为符号?(例如:警告表情符号“??”)

Vad*_*est 6 emoji

我正在尝试一些表情符号的奇怪行为(特别是 \xe2\x9a\xa0\xef\xb8\x8f 表情符号,被转换为其符号版本)。

\n

我无法解释的是为什么它在某些网站上有效而在其他网站上无效。

\n

例如,使用 MacOS“表情符号查找器”(cmd + ctrl + space)并选择“警告”表情符号,它会在 Asana 中显示表情符号,但会将表情符号转换为其在 StackOverflow 中的符号版本:

\n

\xe2\x9a\xa0\xef\xb8\x8f (我希望那里有表情符号,而不是符号)

\n

我只是想知道为什么它在某些网站上“按预期”工作,而在其他网站上则不然。跟字体有关系吗?

\n

这是预期的表情符号\n在此输入图像描述

\n

我在 MacOS Monterey 12.2.1 下使用 Chrome 和 Brave 浏览器时经历过这种行为。

\n
\n

编辑这是一个视频,希望能更好地解释事情

\n

编辑2这是我所看到的:

\n

在此输入图像描述

\n

mow*_*mow 2

这是因为浏览器如何呈现字符,您在同一浏览器中看到同一字符的不同表示的原因可能是,某些网站附加了“unicode 变体选择器”:︎ 在字符的末尾,以便能够自由地设计它的样式,而无需依赖浏览器来渲染它。

更详细的解释: https: //tonsky.me/blog/emoji/ 和示例: https: //mefody.dev/chunks/emoji-to-text/

  • 我认为目前没有办法保证这一点。“︎” 是一个 unicode 标准,但所有浏览器上的实现可能有所不同,我用一些链接更新了我的答案。 (2认同)