背景:
在使用Mybatis框架往MySQL插入中文数据到表里时,报错了
java.sql.SQLException: Incorrect string value: '\xE6\x9D\xB0\xE6\x96\xAF' for column 'name' at row 1
在网上查了之后发现MySQL默认的库和表的字符编码都是latin1,而我们一般需要使用 utf8
先查看库、表、表字符字段的编码格式
SHOW CREATE DATABASE 库名; //查看库的字符集
SHOW CREATE TABLE 库名.表名; //查看表的字符集
SHOW FULL COLUMNS FROM 库名.表名; //查看字段编码
解决:
修改库、表、字符字段的编码
ALTER DATABASE 库名 DEFAULT CHARACTER SET utf8; //修改库的字符集
ALTER TABLE 库名.表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; //修改表以及字符字段的字符集
坑:
本来我是想通过navicat直接修改表的编码的,然后通过查命令,发现并没有生效 (
参考: