异常:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
解决:
MySql的utf-8编码只支持3个字节的数据,而移动端的emoji是四个字节的数据,如果直接往utf-8编码的数据库中插入表情,就会报上面的错误。
utf8mb4编码兼容utf-8,是utf-8编码的超集,能存储4字节的表情字符。
1,将存储表情字符的数据库表改为utf8mb4,
2,utf8mb4支持的数据库版本最低为5.5.3+。
3,修改mysql配置文件my.cnf(windows为my.ini)。
[client]
port=3306
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
4,重启MySql服务。
5,修改数据库连接的配置
characterEncoding=utf8
会被自动识别成utf8mb4,可以不加这个参数,
重新测试,发现已经可以存储表情字符了。