微信开发中emoji表情的问题

    做微信开发的时候就会发现,存储微信昵称必不可少。之前的项目里面微信昵称很多都是空白,后来才知道是因为emoji表情的问题。原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。

我收集了一些解决方法:

1、修改数据库  使用utfmb4字符集

修改mysql配置文件  character-set-server=utf8mb4

改完之后重启mysql服务

修改表   ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

2、使用base64编码

base64_encode编码之后入库,出库的时候base64_decode解开

3、过滤emoji表情

$nickname = json_encode( $nickname );
$nickname = preg_replace( "#(\\\ue[0-9a-f]{3})#ie", "", $nickname );
$nickname = preg_replace( "#(\\\ud[0-9a-f]{3})#ie", "", $nickname );
$nickname = json_decode( $nickname );

安卓 ios 亲测可用  2016.9.27 

评论