mysql 存 emoji 失败报错
java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F…’ for column ‘feedback’ at row 1
1.检查mysql 版本,升级到5.6以上
2.检查jdbc驱动程序版本,保证在在5.1.13以上
3.保证后台dao程序获取数据库连接对象时 url去除charsetEncoding=utf-8
4.开始改数据库字符集,以下图结果为准
一种是修改文件,windows 找到 mysql 的my.ini文件 (linux 是 my.cnf)
在对应位置加上以下代码
[client]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4’
另一种是命令行修改,如果不行就改文件
set character_set_client=utf8mb4;
set character_set_connection=utf8mb4;
set character_set_database=utf8mb4;
set character_set_results=utf8mb4;
set character_set_server=utf8mb4;
最后show variables like ‘%char%’; 看看是否修改成功
5.修改表的字符集为utf8mb4
navicat 直接改
6.修改表的对应字段为utf8mb4
7.最后重启mysql服务
结果