阅读 43

mysql编码报错

彻底解决 MYSQL: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80\xE3\x80...' for column 'show_content' at row 1

Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80\xE3\x80...' for column 'show_content' at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
    at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)
    ... 64 more
复制代码

发现原来是因为数据库编码问题导致的,原因在于我们的评论数据中存在emoj表情,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误,那么这个问题我们应该怎么解决呢?

分为下面三个步骤来解决:

(1)修改mysql数据库的编码为uft8mb4
(2)修改数据表的编码为utf8mb4
(3)修改连接数据库的连接代码
复制代码

其中:

(1)修改mysql数据库的编码为uft8mb4

ALTER SCHEMA database_name DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;

修改方法: 参看:blog.csdn.net/poice00/art…

(2):修改数据表的编码为utf8mb4 执行命令:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4;

数据库和表也都可以客户端工具修改;

查看数据库字符集:

show variables like 'char%';
复制代码

(3):修改连接数据库的连接代码

去掉

characterEncoding=UTF-8
复制代码
文章分类
后端
文章标签