前言
- Unicode 超过 \u0000 ~ \uFFFF 之间的字符必须用两个双字节的形式表示。如“?”“?”称之为《特殊字符》
- Incorrect string value: ‘\xF0\x9F\x98\xAC’ for column ‘user_name’
- 找到mysql的配置文件 C:\mysql\mysql-8.0.13\mysql-8.0.13-winx64\my.ini文件
- 修改编码
[mysqld]
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
2.修改数据库编码,执行sql(也可以图形化界面直接手动设置)
- 方法一:执行sql
修改数据库编码:SET character_set_database = utf8mb4; 或
alter database 数据库名 character set utf8mb4
修改数据表编码:ALTER TABLE 数据库名 CHARACTER SET = utf8mb4;
查看数据库编码:SHOW CREATE DATABASE 数据库名;
查看表编码:SHOW CREATE TABLE 表名;
查看字段编码:SHOW FULL COLUMNS FROM col_name;
- 方法二:图形化界面手动设置
-
保证数据库编码一致为utf8mb4
-
保证表编码一致为utf8mb4
-
保证字段编码一致为utf8mb4
编码设置完成,此时你可以手动往数据库里边插入
注意:手动插入数据需要将数据库的连接属性设置为utf8mb4,否则特殊符号会乱码且不能插入
注意:如果在图形化界面将连接属性设置为utf8mb4,你的正常中文都会是乱码“???”问号,所以建议不要手动去插入数据
3.修改springboot的连接属性spring:
datasource:
tomcat:
init-s-q-l: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci
大功告成