MySQL 保存 表情出错。 Incorrect string value: '\xF0\x9F\x8C\xB8'

时间:2022-07-13 17:06:12

Incorrect string value: ‘\xF0\x9F\x8C\xB8’ for column ‘nick_name’ at row 1

第一 、修改:数据库默认编码。重启数据库,
第二 、去掉 jdbc 连接里面的编码设置。
第三 、修改数据库表的字符设置。
第四 、修改对应表的字段的设置。

第一 、修改:数据库默认编码。重启数据库,


[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

第二 、去掉 jdbc 连接里面的编码设置。

# 主数据源,默认的
spring.datasource.url=jdbc:mysql://localhost:3306/xxx

第三 修改数据库表的字符设置。
第四 修改对应表的字段的设置。(我就被这个坑了,调试了很久)

CREATE TABLE `user` (
`uid` BIGINT(20) NOT NULL AUTO_INCREMENT,
`nick_name` VARCHAR(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '昵称',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '电话',
) ENGINE=InnoDB
AUTO_INCREMENT=33 CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'