这几天开发的项目需要把Emoji 表情保存到数据库原来的Mysql数据库的编码是utf8的,这就导致保存的时候报如下错误:
f(windows为f放在/etc/my.cnf位置找到后请在以下三部分里添加如下内容:
不同嘚操作系统重启数据库方式不同,如果以上命令不管用请根据操作系统在网上搜索命令
修改前的数据库和服务器字符集我没有截图保存,下面贴上修改后的截图
下面贴上上面各个参数的解释:
来自客户端的语句的字符集 建立连接使用的字符集。 默认数据库使用的字符集当默认数据库更改时,服务器则设置该变量如果没有默认数据库,变量的值同character_set_server 用于向客户端返回查询结果的字符集 服务器用来保存識别符的字符集。该值一定是utf8 连接字符集的校对规则。 默认数据库使用的校对规则当默认数据库改变时服务器则设置该变量。如果没囿默认数据库变量的值同collation_server。 服务器的默认校对规则
程序重新连接数据库,应该是可以保存成功了
如果修改完成后,代码中保存还是報错的话那就要修改连接数据库的配置了
本人使用的是阿里巴巴的druid数据库连接池:
我在中新增了如下配置:
<!-- 其他的与本次换字符集无关嘚配置我就不贴上来了 -->
如果本文有什么错误的地方烦请指出!
如果有问题可以留言,希望本文可以帮助有需要的人