JDBC对Mysql utf8mb4字符集的处理
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围在存储数据时, 出现部分特殊字符存储字符串失败.
千家信息网最后更新 2024年11月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安全错误
数据库的锁怎样保障安全
数据库$
怎么用管理员打开数据库
ftp抓取服务器日志
8.3联盟选哪个服务器
网络安全法小红书
曙光服务器性能说明
有关网络安全的书目
李玉婷数据库排序教程
上海平台软件开发
挑选网络技术转让材料
资源站数据库网盘下载
社区网络安全自查
数据库中有个log文件超级大
互联网软件开发专业怎么样
软件开发项目经理惩奖制度
宝山区网络技术开发质量保障
管理学校网络服务器
服务器 塔式
方舟服务器管理器教程
门禁服务器建立空文档失败
地下城与勇士如何在服务器下载
去新华科技互联网学校要带什么
mc服务器等价交换
计算机网络安全方案措施
知到数据库应用与开发
戴尔r940服务器哪家便宜
北京推广软件开发
苍南一站式定制软件开发
云端数据库sae
云南民族大学软件开发题库