使用 PHP 把搜狗输入法输入的 EMOJI 表情转换为 Unified 编码的一个方法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qiayue
V2EX    PHP

使用 PHP 把搜狗输入法输入的 EMOJI 表情转换为 Unified 编码的一个方法

  •  2
     
  •   qiayue
    PRO
    2015-10-15 15:11:28 +08:00 9235 次点击
    这是一个创建于 3694 天前的主题,其中的信息可能已经有所发展或是发生改变。
    搜狗输入法中选择笑脸表情后,提交到后端, json_encode 得到 \ud83d\ude04 。
    如何把 d83dde04 转成标准 emoji 表情代码困扰了我好久,找了好多文章,终于让我找到解决方案了,也许其他人也有需要,所以在这里记录下来。

    键性参考文章: http://www.bubuko.com/infodetail-1022211.html

    里边推导了一个公式,可以把 0xd83d0xde04 转成 1f604 ,而 U+1F604 就是 Unified 编码的笑脸表情代码。
    文中是 js 的函数,我提取出来了关键几行代码,转成 PHP 代码如下:

    $h = 0xd83d; //高位
    $l = 0xde04; //低位
    $code = ($h - 0xD800) * 0x400 + 0x10000 + $l - 0xDC00; // 转换算法
    echo "U+" . strtoupper(dechex($code));
    //echo 结果是 U+1F604

    另外不同编码方式的转换,参考 http://code.iamcal.com/php/emoji/
    另一些参考网页
    http://computerism.ru/emoji-smiles.htm
    https://github.com/mc-zone/emoji-code
    8 条回复    2015-10-22 14:34:17 +08:00
    xfspace
        1
    xfspace  
       2015-10-15 15:19:20 +08:00 via Android
    PHP 必须是世界上最好的语言!
    qiayue
        2
    qiayue  
    OP
    PRO
       2015-10-15 15:27:23 +08:00
    不仅仅是搜狗输入法, iOS 输入法也是一样
    Moker
        3
    Moker  
       2015-10-15 15:49:22 +08:00
    收藏下 最近做的东西可能会用到
    qiayue
        4
    qiayue  
    OP
    PRO
       2015-10-15 18:58:24 +08:00
    @Livid 突然想到,要是收藏也能使帖子回到首页(俗称被顶起来)就好了
    比如说每收到 5 个收藏就相当于一次评论顶贴

    因为目前的设定,很多人收藏,但是没人回复的帖子就再也没机会被顶起了
    deadEgg
        5
    deadEgg  
       2015-10-15 20:32:39 +08:00
    qiayue
        6
    qiayue  
    OP
    PRO
       2015-10-15 20:51:11 +08:00
    @deadEgg 我主贴倒数第三个链接就是你发的这个
    cdffh
        7
    cdffh  
       2015-10-16 16:24:17 +08:00   1
    emoji 有两个大坑
    1,存储到数据库要使用 utf8-mb4 才行
    2,导出 excel 的时候会把 phpexcel 搞崩.
    comver
        8
    comver  
       2015-10-22 14:34:17 +08:00
    谢。
    mark.参考。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5792 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:06 PVG 10:06 LAX 18:06 JFK 21:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86