mysql特殊字符、生僻字存储设置

news2024/9/28 3:28:08

mysql  utf-8模式下,分为ut8mb3,utf8mb4,mb4是支持特殊字符、emoji表情的,mb3是不支持的。

报错信息:

1### Error updating database.  Cause: java.sql.SQLException: Incorrect string value: '\xF0\xA8\x92\x82\xE6\x95...' for column 'fleet_contact_name' at row 1

需要排查mysql的字符、表、字段的字符:

SHOW VARIABLES LIKE 'character_set%';

可以看到database是utf8的,默认是走的utf8mb3。

继续查看表的ddl语句,确保表字段走到utf8mb4。

继续排查程序jdbc的连接设置UTF-8的编码

jdbc:mysql://localhost:3306/66kc_test_yunlian_truck?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true

如果上述都没问题,大概率是mysql-connector的版本问题,升级版本到8.0.13和以后的版本

-- maven引入
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.32</version> <!-- 使用时请检查是否有更新的版本 -->
        </dependency>



-- mysql的配置修改项目
driver-class-name: com.mysql.cj.jdbc.Driver

原因解释:

mysql-connector-java 版本在8.0.12之前的,包括8.0.12,服务端必须设置character_set_server=utf8mb4;如果不是的话,就算设置了characterEncoding=UTF-8,照样会被设置为MYSQL的 utf8字符集,也就是utf8mb3。

对于8.0.13和以后的版本,如果设置了characterEncoding=UTF-8,他会映射到MYSQL的utf8mb4字符集。

如果connectionCollation 也和characterEncoding一起设置了,但是不兼容,characterEncoding会被connectionCollation的设置覆盖掉。

由于没有Java-Style的utfmb3对应的字符集名称可以用在connection选项charaterEncoding上,唯一的设置utf8mb3的方式就是在连接选项设置utf8mb3 collation(例如utf8_general_ci),这会强制使用utf8mb3字符集,正如上文所述。

我们这次的问题就是mysql-connector的版本的原因,mysql server 5.7.37 ,client connector是5.1.39。使用mybatis-plus ,Hikari连接池的项目导致插入报错,升级connector8.0.13的版本后问题解决。但是另外一个项目使用mybatis\druid的连接池,就能够正常写入,具体原因可能是编码设置的内部机制问题。

编码解析流程:

总结:1、问题排查时一定确认好生产、测试的配置是否一致,不一致可能导致判断引导错误。

           2、一个项目的报错,最好用同一个项目进行验证,不要用另外一个项目验证(另一个项目验证方便快时想省事)

           3、验证时,一个变量一个变量的验证,否则也会错误引导。事情杂乱时,注意控制步骤跟时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3+ts+vite+electron+electron-packager打包成exe文件

目录 1、创建vite项目 2、添加需求文件 3、根据package.json文件安装依赖 4、打包 5、electron命令运行 6、electron-packager打包成exe文件 Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron 1、创建vite项目 npm create vitelatest 2、添…

hipBLAS示例程序

GPT-4o (OpenAI) 当然&#xff01;以下是一个简单示例&#xff0c;展示了如何使用hipBLAS库进行矩阵-向量乘法 (GEMV) 的操作。该示例包括初始化 hipBLAS 环境&#xff0c;设置矩阵和向量数据并调用hipBLAS API来执行操作。 首先&#xff0c;确保你已经安装了 ROCm&#xff08…

PYTHON学习笔记(八、字符串及的使用)

目录 1、字符串 1.1、字符串的常用操作 1.2、格式化字符串 1.2.1、占位符格式化字符串 1.2.2、f-string格式化字符串 1.2.3、str.format( )格式化字符串 1.3、数据的验证 1.4、正则表达式 1.5.1元字符 1.5.2限定符 1.5.3其他字符 1.5.4re模块 1、字符串 1.1、字符…

如何安全的申请SSL证书

随着数字化时代的快速发展&#xff0c;互联网政务应用已成为政府服务民众、提升治理效能的重要途径。在这个网络日益复杂的时代&#xff0c;政务网站的安全问题显得尤为重要。2024年&#xff0c;国家出台并从2024年7月1日开始实施执行《互联网政务应用安全管理规定》&#xff0…

系统移植(一)u-boot相关命令

文章目录 一、概念&#xff08;一&#xff09;GNU相关命令的扩展(二进制工具集)&#xff08;二&#xff09;1. ld命令&#xff1a;将.o文件链接生成.elf格式文件2. objcopy命令&#xff1a;格式化拷贝命令&#xff0c;将.elf格式文件格式化拷贝生成.bin文件3. objdump命令&…

idea中项目目录,文件显示不全问题

问题&#xff1a;idea中项目目录显示不全问题 解决办法1&#xff1a; 删除目录中的.idea文件 用idea重新打开文件就行了 办法2&#xff1a;手动导入为maven项目 1. 2. 3. 4.选择要导入的项目&#xff0c;导入为maven

vue3前端开发-小兔鲜项目-登录组件的开发表单验证

vue3前端开发-小兔鲜项目-登录组件的开发表单验证&#xff01;现在开始写登录页面的内容。首先这一次完成基础的首页按钮点击跳转&#xff0c;以及初始化一些简单的表单的输入验证。后期还会继续完善内容。 1&#xff1a;首先还是准备好login页面的组件代码内容。 <script …

四、GD32 MCU 常见外设介绍(8)SPI 模块介绍

串行外设接口&#xff08;Serial Peripheral Interface&#xff0c;缩写为 SPI&#xff09; 提供了基于SPI 协议的数据发送和接收功能&#xff0c; 可以工作于主机或从机模式。 SPI 接口支持具有硬件 CRC 计算和校验的全双工和单工模式。 8.1.SPI 基础知识 SPI 物理层 SPI接…

Pytorch使用教学7-张量的广播

PyTorch中的张量具有和NumPy相同的广播特性&#xff0c;允许不同形状的张量之间进行计算。 广播的实质特性&#xff0c;其实是低维向量映射到高维之后&#xff0c;相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射。 相同形状的张量计算 虽然我们觉…

自动驾驶(八十八)---------通讯之SOMEIP

1. 什么是SOME/IP 服务导向架构&#xff08;SOA&#xff0c;Service-Oriented Architecture&#xff09;是一种设计软件系统的方法&#xff0c;强调通过可重用的服务来实现系统的松散耦合。每个服务是独立的功能单元&#xff0c;可以被不同的应用程序使用。这些服务通过标准化的…

新版海螺影视主题模板M3.1全解密版本多功能苹果CMSv10后台自适应主题

苹果CMS2022新版海螺影视主题M3.1版本&#xff0c;这个主题我挺喜欢的&#xff0c;之前也有朋友给我提供过原版主题&#xff0c;一直想要破解但是后来找了几个SG11解密的大哥都表示解密需要大几百大洋&#xff0c;所以一直被搁置了。这个版本是完全解密的&#xff0c;无需SG11加…

ADG901介绍

目录 一、特性二、增强产品特性三、应用四、一般描述五、极低功耗六、引脚描述七、尺寸参数八、电路连接 一、特性 宽带开关&#xff1a;-3 dB 在 4.5 GHz吸收型开关高关断隔离度&#xff1a;在 1 GHz 时为 38 dB低插入损耗&#xff1a;在 1 GHz 时为 0.8 dB单一 1.65 V 至 2.…

QT5:嵌入式linux开发板调用键盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录​​​​​​​ 前言 一、Buildroot构建QT环境 1.1 构建环境 1.2 检查qtvirtualkeyboard库 二、测试过程 2.1 直接调用qtvirtualkeyboard 1.测试代码 2.测试效果 2.2 运行…

【Unity国产化信创平台】麒麟银河V10系统虚拟机创建

目录 一、麒麟V10系统镜像下载 二、虚拟机创建流程 三、麒麟银河系统安装流程 一、麒麟V10系统镜像下载 https://www.kylinos.cn/# 官方访问还是会有问题&#xff0c;如果有需要麒麟银河Kylin系统V10的镜像文件&#xff0c;可以留下邮箱或者私信博主获取。 二、虚拟机创…

时间序列分析方法之 -- 移动平均(Moving Average)

目录 原理 适用情况 Python 示例代码 结论 原理 移动平均&#xff08;Moving Average, MA&#xff09;是一种常用的时间序列分析和数据平滑方法。其基本思想是通过取时间序列中某个时间窗口内数据的平均值来消除短期波动&#xff0c;从而更好地揭示数据的长期趋势。根据取平…

【Tomcat】Mac M3 Pro安装Tomcat7

文章目录 下载配置环境变量修改权限启动和关闭 下载 官网&#xff1a;https://tomcat.apache.org/ cd ~/Library tar -zxvf /Users/用户名/Downloads/apache-tomcat-7.0.99.tar.gz mv apache-tomcat-7.0.99 ~/Library/tomcat配置环境变量 vi ~/.bash_profileexport TOMCAT…

UWA Gears正式上线,助力移动平台性能优化

亲爱的开发者朋友们&#xff0c; 我们非常激动地向大家宣布&#xff0c;UWA最新的无SDK性能分析工具 - UWA Gears&#xff0c;现已正式发布&#xff01;无论您使用的是哪种开发引擎&#xff0c;这款工具都能轻松应对&#xff0c;为您的项目保驾护航。更令人心动的是&#xff0c…

vue3【实战】可编辑的脱敏信息

<script lang"ts" setup> import { ref, onMounted } from "vue"; let real_name ref("朝阳");let name ref("");onMounted(() > {name.value des_name(real_name.value); });function focusing() {name.value real_name…

spring —— 事务管理器

事务管理主要针对数据源进行操作&#xff1a;在数据库方面&#xff0c;通过 TransactionManager 事务管理器进行管理&#xff0c;表明一旦出现错误&#xff0c;该数据源的所有数据全部复原。那么数据库如何判断是否发生了错误呢&#xff1f;这就需要在代码方面&#xff0c;通过…

FPGA开发——实现流水灯的设计

一、概述 众所周知&#xff0c;在我们学习任何一款硬件&#xff0c;不管是单片机MCU&#xff0c;DSP以及其他的一系列硬件在内的最开始接触的都是LED流水灯的实现&#xff0c;这就和我们在学习编程时的输出“Hello World”一样&#xff0c;我们在学习FPGA的过程当中也是要从LE…