【问题标题】:MySQL query to find emoji records with skin-tone variantsMySQL 查询以查找具有肤色变体的表情符号记录
【发布时间】:2019-02-03 20:34:58
【问题描述】:

我正在处理一些与表情符号相关的 SQL,使用来自 github (https://github.com/emojione/emojione/releases/tag/4.0.0) 上 emojione 版本的数据。

表情符号被赋予一个 unicode 值 - 例如“城堡”??? = 1f3f0。

许多表情符号都有肤色变化 - 例如 - 攀爬人 (????) = 1f9d7,但也有 5 种肤色变化:

  1. ?????????? - 1f9d7-1f3fb
  2. ?????????? - 1f9d7-1f3fc
  3. ?????????? - 1f9d7-1f3fd
  4. ?????????? - 1f9d7-1f3fe
  5. ?????????? - 1f9d7-1f3ff

肤色变化由 unicode 值的 1f3fb 部分表示,并且可以如上所示 - 在该表情符号的初始标识符之后,或者有时可以夹在 unicode 值的两个部分之间 - 例如,man -mechanic(??????‍????)的unicode值是1f468-1f527,但是后来肤色unicode值如下:

  1. ??????????‍????男机械师:浅肤色 - 1f468-1f3fb-1f527
  2. ??????????‍????男机械师:中浅肤色 - 1f468-1f3fc-1f527
  3. ??????????‍????男机械师:中等肤色 - 1f468-1f3fd-1f527
  4. ??????????‍????男机械师:中深色皮肤吨- 1f468-1f3fe-1f527
  5. ??????????‍????男机械师:深色肤色 - 1f468-1f3ff-1f527

我正在尝试编写一些 SQL 来识别那些具有肤色变化的表情符号。

这是一些示例数据:

select my_data.*
from (select '1f468-1f9b3' unicode_value union all
      select '1f468-1f3fb-1f9b3'         union all
      select '1f468-1f3fc-1f9b3'         union all
      select '1f468-1f3fd-1f9b3'         union all
      select '1f468-1f3fe-1f9b3'         union all
      select '1f468-1f3ff-1f9b3'         union all
      select '1f474'                     union all
      select '1f474-1f3fb'               union all
      select '1f474-1f3fc'               union all
      select '1f474-1f3fd'               union all
      select '1f474-1f3fe'               union all
      select '1f474-1f3ff'               union all
      select '1f98d'                     union all
      select '1f40a'                     union all
      select '1f1fc-1f1f8') my_data;

鉴于上述示例数据,有没有办法只返回这些:

  1. 1f468-1f9b3
  2. 1f474

因为它们是唯一具有 5 种肤色变体的记录,这些变体紧接在 unicode 值的第一段之后?

如果不编写函数或一些复杂的东西,或者将 SQL 与 PHP 等脚本语言结合起来,可能无法实现这一点,但我想在这里问一下。

【问题讨论】:

    标签: mysql unicode emoji emojione emoji-tones


    【解决方案1】:
    SELECT UNHEX('F09F91A8E2808DF09F94A7');
    

    F09F91A8 = man
    E2808D = 零宽度连接器
    F09F94A7 = 机械师

    一些参考资料:
    http://unicode.scarfboy.com/?s=1f3fd
    https://codepoints.net/U+1f3fd
    http://www.fileformat.info/info/unicode/char/1f3fd/index.htm

    MySQL 对 UTF-8 比对 Unicode 代码点更友好。

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 2022-11-07
      • 2019-12-26
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多