解决MySQL不能存储Emoji表情的问题

原因分析

在MySQL 5.5.3之前版本的数据库中,数据库的默认编码是utf8字符集,只支持1-3个字节的字符,也就是只能保存1到3个字节。但现在的emoji表情需要用4个字节才能保存,所以抛出异常。

解决方案

1、将数据表的编码格式设置成utf8mb4_general_ci

sql 复制代码
ALTER TABLE XXX CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

此时数据库已经可以支持emoji表情了

2、修改JDBC链接

sql 复制代码
修改前

jdbc.url=jdbc:mysql:/域名:端口/数据库?useUnicode=true&character_set_server=utf-8

修改后

jdbc.url=jdbc:mysql:/域名:端口/数据库?useUnicode=true&character_set_server=utf8mb4

最后修改druid数据源的配置,增加一行。

bash 复制代码
<property name="connectionInitSqls" value="set names utf8mb4;"/>
相关推荐
rit84324993 分钟前
ELK实现nginx、mysql、http的日志可视化实验
mysql·nginx·elk
面朝大海,春不暖,花不开19 分钟前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式
伍六星23 分钟前
Flask和Django,你怎么选?
数据库·django·flask
杜哥无敌30 分钟前
ORACLE 修改端口号之后无法启动?
数据库·oracle
远方160935 分钟前
0x-4-Oracle 23 ai-sqlcl 25.1.1 独立安装-配置和优化
数据库·ci/cd·oracle
远方16091 小时前
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
数据库·ide·ai·oracle
喵叔哟2 小时前
第1章:Neo4j简介与图数据库基础
数据库·oracle·neo4j
喵叔哟2 小时前
第6章:Neo4j数据导入与导出
数据库·oracle·neo4j
甜甜的资料库3 小时前
基于微信小程序的睡眠宝系统源码数据库文档
数据库·微信小程序·小程序
代码老y3 小时前
Redis:现代应用开发的高效内存数据存储利器
数据库·redis·缓存