前端杂货铺

emoji表情写入数据库报错解决方案

2018-11-10  本文已影响0人  loosenRogers

对于没有把表情等特殊字符考虑在内的系统,当向数据库写入emoji时,数据库就会报错,如下所示:


数据库写入emoji时报错

原因

emoji表情为4个字符,而一般Mysql的utf8编码最多3个字节,所以插入时就会报错。

解决方案

要使用 MySQL 的这个特性,首先需要把 MySQL 升级到 5.5.3 以上的版本。

其次,需要修改数据结构中的字符集为 utf8mb4 ,如 utf8mb4_general_ci 。由于 utf8mb4 是 utf8 的超集,从 utf8 升级到 utf8mb4 不会有任何问题,直接升级即可;如果从别的字符集如 gb2312 或者 gbk 转化而来,一定要先备份数据库。

然后,修改 MySQL 的配置文件 /etc/my.cnf,修改连接默认字符集为 utf8mb4 ,如果是自己写的 PHP 脚本,也可以在连接数据库以后首先执行一句 SQL: SET NAMES utf8mb4;。这时候,PHP 应该就可以正常保存 Emoji 到数据库了。
对于数据库配置不是很懂,以上摘抄自博文emoji写入数据库报错处理的方法

参考

1、encodeURIComponent
2、emoji写入数据库报错处理的方法

上一篇下一篇

猜你喜欢

热点阅读