原因分析
这个错误通常发生在使用MySQL数据库时,尝试将包含四字节UTF-8字符(通常表示为Unicode码点大于U+FFFF的字符)插入到一个不支持这种字符的字符集列中。一般在插入睡眠emoji表情时容易遇到
解决
-- 设置数据库编码utf8mb4
ALTER DATABASE yrt220519 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
-- 设置表编码
ALTER TABLE udi_device_record CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 设置列编码
alter table udi_device_record modify column cpms varchar(2000) character set utf8mb4 collate utf8mb4_unicode_ci comment '产品描述';
SET NAMES 'utf8mb4';
最后还要在java jdbc链接串里面设置一下
characterEncoding=UTF-8
查询现在的编码是什么
-- 查询数据库的
SHOW VARIABLES LIKE 'character_set_database';
-- 查询表的
SHOW FULL COLUMNS FROM udi_device_record;