您当前的位置:首页 > 分类 > 技术资讯 > PHP > 正文

mysql切换到utf8mb4支持emoji字符

发布时间:2017-04-11 20:01:17      来源:51推一把
【摘要】需要做的几点:1.MySQL的版本必须为v5.5.3或更高2.把数据库的编码改成utf8mb4 -- UTF-8 Unicode3.然后需要存储emoji表情的字段选择utf8mb4_general_ci4.数据库连接也需要改为utf8mb4(链接数据库的配配置)
mysql切换到utf8mb4支持emoji字符
需要做的几点:
1.MySQL的版本必须为v5.5.3或更高
2.把数据库的编码改成utf8mb4 -- UTF-8 Unicode
3.然后需要存储emoji表情的字段选择utf8mb4_general_ci
4.数据库连接也需要改为utf8mb4(链接数据库的配配置)

当然,如果遇到在已有的项目中接入,如果做了全局的修改,担心影响原有项目怎么办?
下面看局部修改方案
1.修改需要字段的字符集
ALTER TABLE test CHANGE content content VARCHAR(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2.针对test表的插入和读取操作,设置utf8mb4
(PHP CI框架举例)
$this->db->query(SET NAMES utf8mb4);
...
$query = $this->db->get(test);

常见问题
content是utf8_general_ci,而正常插入emoji字符的是utf8mb4_unicode_ci,导致表情存储失败

#查看数据库字符集
SHOW VARIABLES LIKE %char%
SHOW VARIABLES WHERE Variable_name LIKE character\_set\_% OR Variable_name LIKE collation%;

#emoji 表情选择:Emoji-Picker 下载
http://www.open-open.com/lib/view/open1441546012130.html
https://github.com/OneSignal/emoji-picker

#Unicode和UTF编码转换
http://www.qqxiuzi.cn/bianma/Unicode-UTF.php