unicode - 两种不同的眼睛表情符号?
问题描述
据我所知,目前有两种眼睛表情符号。一对眼睛(U+1F440)用十六进制代码f09f9180
(),单眼(U+1F441)用十六进制代码f09f9181
()。
我现在在手机中使用键盘的表情符号时发现存在另一个眼睛表情符号,带有十六进制代码f09f9181efb88f
(️)。
PC 上的 gajim messenger 和手机上的 Conversations 应用程序都可以显示。gajim emoji-chooser 仅包含短序列,而 Swiftkey-Keyboard Emoji-Chooser 仅包含较长序列。
当我在 Firefox URL 地址栏中复制并粘贴表情符号时,它们看起来是一样的(蓝眼睛,而信使都以黑色显示它们)。当我用谷歌搜索表情符号时,我只找到描述较短代码点的页面。
Firefox 将两个表情符号呈现为相同,但 Vivaldi(基于 Chromium)将具有较短代码点的表情符号显示为窄的黑白表情符号,而将另一个表情符号显示为较大的棕色眼睛。
当我用谷歌搜索十六进制转储时,我发现很多表情符号网站都用于较短的转储,而对于较长的转储则毫无用处。
是否有任何关于附加表情符号的文档?为什么两个表情符号选择器中都没有两个表情符号?
解决方案
f0 9f 91 80
是 codepoint 的 UTF-8 编码形式U+1F440
。
f0 9f 91 81
是 codepoint 的 UTF-8 编码形式U+1F441
。
f0 9f 91 81 ef b8 8f
是 codepoints 的 UTF-8 编码形式U+1F441 U+FE0F
。
U+FE0F
是一个变体选择器:
变体选择器是一个 Unicode 块,包含 16 个变体选择器格式字符(指定为 VS1 到 VS16)。它们用于为 Unicode 字符指定特定的字形变体。它们目前用于为与 CJK 兼容表意文字相对应的数学符号、表情符号、'Phags-pa 字母和 CJK 统一表意文字指定标准化变体序列。目前仅定义了具有 VS1、VS15 和 VS16 的标准化变异序列。
在哪里U+FE0F
:VARIATION SELECTOR-16
U+FE0F 在版本 3.2 (2002) 中被添加到 Unicode。它属于基本多语言平面中的变量选择器块。
此字符是非间距标记,并从前一个字符继承其脚本属性。
字形不是组合。它有一个模糊的东亚宽度。在双向上下文中,它充当非间距标记并且不被镜像。在文本中 U+FE0F 表现为关于换行符的组合标记。它有用于句子的扩展类型和用于分词的扩展类型。字素簇断裂是扩展的。
此代码点可能会更改前面字符的外观。如果那是一个符号、dingbat 或 emoji,U+FE0F 会强制将其渲染为彩色图像,而不是单色文本变体。Unicode 标准定义了一些标准化的变体。有关此代码点的讨论,另请参阅“Unicode 符号作为文本或表情符号”。
换句话说,U+FE0F
告诉 VS 感知软件呈现U+1F441
为彩色表情符号而不是单色文本。
推荐阅读
- r - 尝试运行 cronjob 来构建 Twitter 用户 ID 列表
- rust - 通用数字的函数签名
- python - 在 ITK 中读取 numpy 数组图像
- swift - 在 iOS 上启动 Web 套接字服务器(使用 Starscream?)
- java - 我收到 java.lang.ArrayIndexOutOfBoundsException
- django - Django - 如何将代理模型与另一个模型加入
- objective-c - 可可 - unarchivedObjectOfClass 不调用 initWithCoder
- jenkins - 从 Pipeline 脚本方法获取控制台 Logger(或 TaskListener)
- java - 获取对象列表的组
- python-3.x - 如何在 Python 中随机选择