标题有点长,总之就是关于emjoy表情
首先,emjoy表情我们并不陌生了,现在移动设备上到处都是这种表情,尤其是对我们做微信公众号服务的人来说,经常遇到因为用户微信昵称里面含有emjoy表情而导致用户数据存储失败以及数据库报错等等,找到了一些答案:
问题分析总结:
㈠ 原因
普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点
㈡ 限制
需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错。
来自:http://blog.itpub.net/26230597/viewspace-1243233/
这次我们主要说说怎么显示,下面是我做出来的效果:
找到一个专门处理emjoy表情的类,地址如下:http://code.iamcal.com/php/emoji/
下面是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php include 'emoji.php'; $emj = '☀🌱 🍌💇 🐺 😂😪😾🏥 🏰👣💘🔐'; echo json_encode($emj).'<br/>'; $clean_text = emoji_docomo_to_unified($emj); var_dump($clean_text); $html = emoji_unified_to_html($clean_text); ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="emoji.css"> </head> <body> <?php echo $html; ?> </body> </html> |
很简单的处理,就显示在网页上啦,当然我们需要存数据库,直接json转码就是了…拿出来时候再转回来…
分享一个emjoy表情包地址 : http://www.oicqzone.com/tool/emoji/
本次代码地址:http://git.oschina.net/shala/SomeCode/tree/master/2016/1/emoji/
正在上夜班,饿了,去医院超市买了包泡面,用护士站的热水泡了后就坐在护士站吃了起来。吃完后感觉意犹未尽,便再去买一包。发现两个保安也在买泡面,看到我还打招呼:一包没吃饱?我诧异:你咋知道?原来保安在监控室看我吃太香了,也饿了!