码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL插入emoji报错解决方法Incorrect string value

时间:2020-06-18 11:05:39      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:sql   modify   har   解决   cte   lte   ring   文件   utf8编码   

MYSQL插入emoji表情时,会出现Incorrect string value的错误
将对应列的字符集改成utf8mb4

Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x84‘ for column ‘review‘ at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)

原因:

UTF-8编码的字符可以时2个、3个、4个直接。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。

解决方案:

将Mysql的编码从utf8转换成utf8mb4。

操作:

1. 检查数据库编码设置

SHOW VARIABLES LIKE ‘%character%‘;

技术图片

如果不是以上配置,修改mysql配置文件(windows:my.ini;linux:my.cnf)

character-set-server = utf8mb4

2. 重启mysql

3. 将数据库表编码转换成utf8mb4

ALTER TABLE "TABLE_NAME" CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

4. 将需要使用emoji的字段设置类型为

ALTER TABLE "TABLE_NAME" MODIFY COLUMN "COLUMN_NAME"  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

参考连接:https://www.jianshu.com/p/a424a9b278d9

MYSQL插入emoji报错解决方法Incorrect string value

标签:sql   modify   har   解决   cte   lte   ring   文件   utf8编码   

原文地址:https://www.cnblogs.com/proper128/p/13156044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!