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的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。
今日新鲜事 2019-06-23 22:54:27 1 评 | 回复
文章不错非常喜欢