Incorrect string value: '\xF0\x9F\x98\xB3)\xE3...' for column 'content'解决办法
原因解析:我们的评论数据中存在emoj表情,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误
解决思路:(1):修改mysql数据库的编码为uft8mb4 (2):修改数据表的编码为utf8mb4 (3):修改字段的编码为utf8mb4 (4):修改连接数据库的连接代码
1、修改数据库编码
(1)修改 mysql 配置文件 Windows 是my.ini,Linux 和 Mac my.cnf 这里介绍 Linux 下的修改方法 编辑 /etc/my.cnf 文件 该文件仅可读,需要修改权限 sudo chown 755 /etc/my.cnf sudo vim /etc/my.cnf
内容如下:
[client]
#... 其他内容
default-character-set=utf8mb4
[mysqld]
#... 其他内容
collation-server = utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
default-character-server=utf8mb4
[mysql]
#... 其他内容
default-character-set=utf8mb4
(2) Navicat 软件里修改 数据库属性
2、数据表修改
修改 对应表的编码
3、修改字段(必须改,这里是个坑)
把一张表里所有的字段编码都改成 utfmb4
alter table `你的表` convert to character set utf8mb4
4、修改数据库连接URL
mysql.url=jdbc:mysql://localhost:3306/yuedui?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=TRUE
参考文献,感谢该大神的分享
http://blog.liuyanzhao.com/article/8298