JDBC对Mysql utf8mb4字符集的处理
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围在存储数据时, 出现部分特殊字符存储字符串失败.
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
大学生软件开发笔记本电脑推荐
视频共享服务器
什么是监控服务器
静安区口碑好的软件开发有哪些
ssr服务器租赁
数据库增删改查还有啥
惠普服务器橙色闪烁原因
数据库小问题解决思路
投标软件开发技术分
国家网络安全通报app
公安网络技术部门管理制度
中美网络安全法国内外比较
服务器安装防护要求
cs专业面试软件开发
服务器产业基金项目简介
市医院网络安全
数据库实例名称如何打开
人社局贯彻网络安全和信息化
t-sql数据库编程实验步骤
数据库事务层级是什么
软件开发有限公司财务制度
英国的孩子网络安全问题
集约式软件开发
网络技术专业用什么电脑好
java服务器高级编程
分离数据库mdf文件没有了
苏州汉唐软件开发有限公司
视屏软件开发商
商品分类表 数据库
为什么梦幻西游没有服务器进不去