千家信息网

JDBC对Mysql utf8mb4字符集的处理

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围在存储数据时, 出现部分特殊字符存储字符串失败.
千家信息网最后更新 2026年11月01日JDBC对Mysql utf8mb4字符集的处理

在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围

在存储数据时, 出现部分特殊字符存储字符串失败.

服务端解决方案

查阅MySQL官方文档时,给出如下支持utf8转utf8mb4的官方处理办法

https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-conversion.html

上述的步骤只是针对server端的配置.

对于客户端需要额外特殊的处理

因为我目前的项目, 使用的是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案

JDBC的URL之前的配置方式

String url = "jdbc:mysql://HOST:PORT/DATABASE?useUnicode=true&characterEncoding=UTF-8";

在连接配置中,声明UTF-8的字符编码,在目前的存储需求上来讲,在存储emoji字符串时会报错. 就算服务端的数据库设置了utf8mb4字符集类型

客户端修改成如下配置

String url = "jdbc:mysql://HOST:PORT/DATABASE?useUnicode=true&characterEncoding=utf8mb4";

客户端连接时报错,不支持该字符集

上述问题的解决方案

连接配置改成

String url = "jdbc:mysql://HOST:PORT/DATABASE";

同时数据库配置文件my.cnf 进行相应的修改

[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci

重启服务MySQL服务

问题到此解决

字符 配置 数据 存储 服务 字符集 客户 客户端 数据库 方案 解决方案 处理 特殊 字符串 官方 文本 端的 问题 支持 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 中资互联网科技 互联网科技与金融科技 南京欣网互联网科技 互联网科技ppt模板 人人互联网科技是培训 盛创互联网科技有限公司 互联网科技股午盘股票涨跌 成都仁贤领冠互联网科技有限公司 开启互联网科技时代小说 须眉科技是互联网公司吗 互联网金融科技展 乌苏新华互联网科技做什么的 互联网在线教育科技创业 中和天地互联网科技有限公司 广州梦谷互联网科技有限公司领导 互联网科技平台产品运营 互联网科技新闻 长沙易易互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 互联网科技工作委员会主任 互联网 新科技 科技赋能互联网健康 深圳市运趣互联网科技有限公司 昭通云南众福互联网科技有限公司 互联网科技扶贫时间 2021世界互联网领先科技成果发布 上海乐五互联网科技有限公司 科技和互联网行业的特点 玉溪新华互联网科技怎么选
0