1. 异常
Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\xA4\xA5\x0A\x0A...' for column 'content' at row 1
1.1 为什么出现此异常?
通常情况,Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时使用utf8,会出现‘\xF0\x9F\x8D\x83\xF0\x9F’的问题
想要解决此问题,mysql的版本必须是5.5.9以上
2. 暂时解决
一旦重启电脑或者重启MySQL服务就失效
修改数据库的字符集
修改要存入表情的表的字符集
修改对应字段的字符集(如果使用的数据库可视化工具找不到修改字段的字符集的话,使用SQL语句)
注意:字段名为两个重复的(即你要修改的字段的名字)
ALTER TABLE 表名 CHANGE <字段名> <字段名> LONGTEXT CHARACTER SET utf8mb4;
修改服务器连接地址
原:jdbc:mysql://localhost:3888/xxx?useUnicode=true&characterEncoding=UTF-8
改:jdbc:mysql://localhost:3888/xxx?useUnicode=true
3.永久解决
修改默认的配置(找到mysql安装目录下的 my.int 文件)修改
character-set-server=utf8mb4
default-character-set=utf8mb4
default-character-set=utf8mb4
注意:字段名为两个重复的(即你要修改的字段的名字)
ALTER TABLE 表名 CHANGE <字段名> <字段名> LONGTEXT CHARACTER SET utf8mb4;
本文含有隐藏内容,请 开通VIP 后查看