Linux或Windows MySQL5.7 utf8mb4支持保存Emoji表情失败问题
2019-06-12 15:28:05  By: shinyuu

开发项目时遇到用mysql 5.7 保存emoji 失败,在百度上看了很多的解决办法,终于解决了。其实原因很简单,UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。


1、将Mysql的编码从utf8转换成utf8mb4。

这一步包含对应的表,以及对应的字段,可以用SQL语句去修改,我是用的NavitCat改的,只改了对应的字段也是可以的。

修改数据库字符集:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

修改表的字符集:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改字段的字符集:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;


2、my.cnf 文件添加

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

init_connect=´SET NAMES utf8mb4´


Linux的配置文件中/etc/my.cnf,直接使用VIM命令就可以改,Windows的就更简单了,直接找到my.ini,打开修改就完事,记得一定要重启服务器哦。

有一些哥们是改的 collation-server = utf8mb4_unicode_ci,好像也没什么问题。第一步的话,如果只是某个字段需要 只需要修改那个字段的字符集就可以了,我就是只改了一个字段。


若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。

想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。

或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。

为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。


快速评论


技术评论

DD记账
top
+