Emoji这东西普通人看起来就是表情符号、好玩,但背后的技术还是有些复杂的,前段时间给实习同学和同事们讲了《Unicode Emoji 技术标准 - 📱有趣交流背后的技术基础💻》,准备PPT的过程也是花费了不少时间精力,但搞通后就可以对EmojiAll网站开发中遇到的各种数据技术问题找到答案⁉。
去年刚接触Emoji数据,就发现有些Emoji有Text Style和Emoji Style,有时搞得容易混淆、迷糊😵。
- Emoji v12.0的文件:emoji-variation-sequences.txt,有353组变体;
- Emoji v13.0的文件:emoji-variation-sequences.txt,有354组变体。(增加了一组26A7 跨性别符号 MALE WITH STROKE AND MALE AND FEMALE SIGN)
参看下面的Unicode标准中的说明:
定义 Emoji 和 Text 展示序列
ED-8. text 展示选择器 — 字符 U+FE0E 变体选择器-15 (VS15), 用与要求一个emoji字符的text展示. (以前也称为text变体选择器.) text_presentation_selector := \x{FE0E} ED-8a. text 展示序列 — 一个变体序列,由一个emoji字符后面加一个text展示选择器组成. text_presentation_sequence := emoji_character text_presentation_selector 只有在这个文件中列出的: emoji-variation-sequences.txt [emoji-data] 才是可用的 text 展示序列. ED-9. emoji 展示选择器 — 字符 U+FE0F 变体选择器-16 (VS16), 用与要求一个emoji字符的emoji展示. (以前也称为emoji变体选择器.) emoji_presentation_selector := \x{FE0F} ED-9a. emoji 展示序列 — 一个变体序列,由一个emoji字符后面加一个emoji展示选择器组成. emoji_presentation_sequence := emoji_character emoji_presentation_selector 只有在这个文件中列出的: emoji-variation-sequences.txt [emoji-data] 才是可用的 emoji 展示序列.
因为我们编撰的Emoji词典对每个Emoji都要写介绍描述和举例说明,工作量还是很大的,为了避免重复,一组三个Emoji的描述和举例只需要写一个,其它两个引用就可以了,并附加上还有其它两个变体的说明,这几天我花了好些时间与同事讨论、实现,一个繁体版的例子:
- ⚖ (U+2696)
- Text Style:⚖︎ (U+2696 FE0E)
- Emoji Style:⚖️ (U+2696 FE0F)
后面还要处理更复杂的Emoji修饰符序列和ZWJ零宽连接序列,以后再补充记录博客文章。
评论2
text_presentation_selector
text_presentation_selector emoji_presentation_selector 这两个属性,我们在哪里能查看到吗?你好,我没有太明白你提出的问题,上文中的定义text
你好,我没有太明白你提出的问题,上文中的定义text_presentation_selector就是U+FE0E,emoji_presentation_selector就是U+FE0F,包含text_presentation_selector属性和emoji_presentation_selector属性的emoji可以在这里看到最新的v14.0,更多关于text_presentation_selector和emoji_presentation_selector的官方解释,请看技术文档Unicode Emoji。不知道上面这些信息是否帮到了你?