JDBC对Mysql utf8mb4字符集的处理

Mysql JDBC支持utf8mb4编码 项目中需要在mysql中存储包含emoji表情的字段,使用utf8编码无法解决,因为mysql的utf8实现只有3字节。 为此mysql在5.3+后加入了utf8mb4支持,完全兼容utf8。utf8mb4最多可用4字节存储一个字符,这样就可以处理emoji表情,注意mysql服务端的版本要求utf8mb4的最低mysql版本支持版本为5.5.3+ 后来参考了另一篇文章MySQL 解决 emo... 阅读详情

在开发微信开放平台, 接入微信公众号的数据时, 关于用户的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 = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

重启服务MySQL服务

问题到此解决

MySQL连接URL中的参数useUnicode=true&characterEncoding=UTF-8 在连接MySQL数据库时,可以通过连接URL中的参数来配置连接属性。其中,useUnicode=true和characterEncoding=UTF-8是两个常用的参数,用于设置数据库连接的字符集编码。在MySQL连接URL中,useUnicode=true表示在与数据库进行通信时,使用Unicode字符集进行编码和解码。通过使用上述示例代码中的MySQL连接URL和正确的用户名密码,你可以成功连接到MySQL数据库,并在连接过程中使用Unicode字符集和UTF-8编码进行数据交换。 阅读详情

相关推荐

《矩阵论》学习笔记(四):4.2 矩阵的QR分解

《矩阵论》学习笔记(四):4.2 矩阵的QR分解 文章目录《矩阵论》学习笔记(四):4.2 矩阵的QR分解一. Givens矩阵与Givens变换1.1. 概念与理解1.2. Givens矩阵求解方法二. Householder矩阵与Householder变换2.1. 概念与理解2.2. Householder矩阵求解方法2.3. Givens变换与Householder变换的关系三. 矩阵的QR...

shine的博客 3675

设置 MYSQL 数据库编码为 utf8mb4

UTF8MB4

eagle89的专栏 1万+

保姆级教程:用TIA Portal V17给S7-1200 PLC和HMI做个联调仿真(附抢答器完整项目包)

本文提供了一份详细的TIA Portal V17教程,指导如何实现S7-1200 PLC与HMI的联合仿真开发。通过抢答器项目实例,涵盖从环境搭建、PLC编程到HMI设计的全流程,帮助工程师高效完成工业自动化系统的虚拟调试,显著提升开发效率。

weixin_30417487的博客 624

更改MySQL数据库的编码为utf8mb4

一、概述 utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: 二、创建数据库时,设置为utf8mb4 格式: 三、my.ini设置,修改MySQL配置文件 四、检测是否生效 重启数据库,检...

热水钟博客 3013

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2755

8.DJI-PSDK:一站式项目功能开发总结(空中气象站项目/激光甲烷检测项目)

本文将以一篇文章的幅度快速完成: 项目一:空中气象站项目; 项目二:激光甲烷项目; 项目所使用的PSDK来源于第0章节末尾的百度网盘;解压:Payload-SDK-3.8.zip代码所在目录:双击打开: 修改打印串口和相关波特率,我们修改如下: 进行相关编译选项配置如下: :

哒宰的博客 292

【MySQL】规范

基础规范 表存储引擎必须使用InnoDB。 表字符集默认使用utf8,必要时候使用utf8mb4。 utf8通用,无乱码风险,汉字3字节,英文1字节。 utf8mb4是utf8的超集,有存储4字节例如表情符号时使用它。 禁止使用存储过程、视图、触发器、Event。 对数据库性能影响较大,对于互联网业务,能让站点层和服务层干的事情就不要交到数据库层。 调试、排错、迁移都比较困难,扩展性较差。 禁止在数据库中存储大文件,例如照片,可以将大文件存储在对象存储系统,数据库中存储路径。 禁止在线上环境做

一杯柠檬茶。 726

[ATF]-smc指令详解

1、在ree/tee调用smc之前 2、调用smc之后,cpu触发同步异常,进入ATF的sync_exception_aarch64—>handle_sync_exception—>smc_handler64处理函数 在smc_handler64中又调用了smc_handler func smc_handler64 /* ---------------------------------------------- * Detect if this is a RUN_IMAGE or ot

baron-周贺贺-代码改变世界ctw 1万+

jdbc mysql 字符集_详解JDBC对Mysql utf8mb4字符集的处理

详解JDBC对Mysql utf8mb4字符集的处理写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作复制代码 代码如下:jdbc.url=jdbc:mysql://HOST:3306/your_databas...

weixin_28726969的博客 2267

SAP OData 开发从入门到提高教程的目录

笔者 18 年的 SAP 技术开发生涯,对 SAP OData 服务的开发,测试,发布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和使用场合,均有着深入的研究。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 7233

微信小程序 - {errCode: 10008, errno: 1500104, errMsg: “writeBLECharacteristicValue:fail write characteris

微信小程序errCode: 10008, errno: 1500104, errMsg: "writeBLECharacteristicValue:fail write characteristics error. 10008, errMsg=The value's length is invalid.",uni-app微信小程序报错,uniApp小程序调用蓝牙api报错,向低功耗蓝牙设备的某个特征写入数据时错误,UniApp微信小程序蓝牙API调用报错10008解决方案,蓝牙设备进行通信时,向设备写入数据

🏆 前端领域优质创作者 4428

mysql设置了utf8mb4还是报错_详解JDBC对Mysql utf8mb4字符集的处理

写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作复制代码 代码如下:jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode=true&char...

weixin_34449682的博客 838

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdbc mysql utf8mb4_详解JDBC对Mysql utf8mb4字符集的处理

写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode=true&characterEncod...

weixin_30564447的博客 1043

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql jdbc url指定字符集_详解JDBC对Mysql utf8mb4字符集的处理

写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode=true&characterEncod...

weixin_39940957的博客 2302

mysql jdbc 字符集_JDBC对Mysql utf8mb4字符集的处理

写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode=true&characterEncod...

weixin_36060412的博客 348

mysql jdbc指定字符集_JDBC对Mysql utf8mb4字符集的处理

写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置####当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode=true&characterE...

weixin_28894087的博客 431

jdbc mysql 字符集_JDBC对Mysql utf8mb4字符集的处理

在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围在存储数据时, 出现部分特殊字符存储字符串失败.服务端解决方案查阅MySQL官方文档时,给出如下支持utf8转utf8mb4的官方处理办法上述的步骤只是针对server端的配置.对于客户端需要额外特殊的处理因为我目前的项目, 使用的是JAVA编写,...

weixin_34364239的博客 565

java jdbc字符集转换_java相关:详解JDBC对Mysql utf8mb4字符集的处理

java相关:详解JDBC对Mysql utf8mb4字符集的处理发布于 2021-1-10|复制链接摘记: 写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案一.JDBC的URL的正常操作 ..写在前面在开发微信小程序的时候,评论服务模块...

weixin_36328628的博客 661

使用jdbc来处理MySQL的utf8mb4字符集(转)

原文链接地址: http://blog.51cto.com/11931236/2057929 服务端解决方案 查阅MySQL官方文档时,给出如下支持utf8转utf8mb4的官方处理办法 https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-conversion.html 上述的步骤只是针对server端的配置. 对于客户端...

binglong_world的专栏 1878
上一篇: js数组去重的三种常用方法总结
下一篇: Oracle 的 Round函数详解
shadow_zed
博客等级 码龄10年 6289粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值