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。不知道上面這些信息是否幫到了你?