MySQL 保存富文本编辑器 emoji表情报错 Incorrect string value: ‘\\xF0\\x9F\\x98\\x84</...‘

BUG场景:

使用富文本编辑提交包含表情(emoji)的 html 字符串时,无法保存到mysql数据库。


问题描述

出现如下报错:

Incorrect string value: '\\xF0\\x9F\\x98\\x84</...' for column 'value' at row 1; 
nested exception is java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\x98\\x84</...' for column 'value' at row 1"

原因分析:

数据库的字符集设置问题:mysql的utf8只支持 1 到 3 个字节,Emoji表情占4个字节,超过了mysql的utf8最大支持长度


解决方案:

将表yx_system_group_data的value字段字符集转换成utf8mb4 value字段排序规则utf8mb4_general_ci:

ALTER TABLE `yx_system_group_data` MODIFY COLUMN `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

猜你喜欢

转载自blog.csdn.net/qq_38517231/article/details/126061152