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

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://xiahunao.cn/news/3266929.html

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

相关文章

什么是公司自建企业邮箱?自建企业邮箱有什么用?

什么是公司自建企业邮箱&#xff1f;公司自建企业邮箱有什么用途&#xff1f;一是品牌统一&#xff1b;二是安全性增强&#xff1b;三是定制化功能&#xff1b;四是控制与灵活性等等。哪些企业适合自建企业邮箱呢&#xff1f;本篇文章将为您一一解释。 一、什么是公司自建企业…

Photos框架 - 自定义媒体选择器(UI列表)

引言Photos框架 - 自定义媒体资源选择器&#xff08;数据部分&#xff09;-CSDN博客 关于自定义媒体选择器上一篇博客我们已经介绍了使用Photos获取媒体资源数据和处理媒体资源数据&#xff0c;有了数据&#xff0c;UI的实现就比较灵活了&#xff0c;我就以上面的设计样式为例…

前端养成记-实现一个低配版简单版本的vue3表单自定义设计组件

简介&#xff1a; 通过使用了最新的vue3,vite2,TypeScript等主流技术开发&#xff0c;并配合使用vuedraggable 插件以及antd design vue 组件库实现低配版本的自定义表单设计组件&#xff1b; 项目地址&#xff1a;https://gitee.com/hejunqing/vue3-antdv-generator

直指谷歌?OpenAI将推出在线搜索工具“SearchGPT”

KlipC报道&#xff1a;OpenAI 也在经过一段时间的沉寂后&#xff0c;重新开始了密集的新品发布。当地时间7月25日&#xff0c;OpenAI进军搜索市场&#xff0c;宣布正在测试新的AI搜索工具SearchGPT。目前只向一小部分用户开放&#xff0c;从中获取反馈意见。 华尔街分析师表示…

Cuppa CMS v1.0 任意文件读取漏洞(CVE-2022-25578)

前言 春秋云镜靶场是一个专注于网络安全培训和实战演练的平台&#xff0c;旨在通过模拟真实的网络环境和攻击场景&#xff0c;提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点&#xff1a; 实战演练&#xff1a; 提供各种网络安全攻防演练场景&#…

深层互联重磅发布,潮流开放式一对多无线导游讲解器

佩戴讲解器走进博物馆&#xff0c;已经是很多人的假期日常&#xff0c;但让我们越来越习以为常的无线讲解器&#xff0c;也许没那么简单。日前&#xff0c;深层互联全新推出IndoorLink潮流开放式导游讲解器&#xff0c;可开展主副双讲及同声传译&#xff0c;将不简单推向了一个…

【vue3|第18期】Vue-Router路由的三种传参方式

日期:2024年7月17日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.408…

上传文件传参 pc端vue的formData

formData let formData new FormData(); formData.append("file", blob, ref ".png"); //添加参数并且重新命名文件名称 if(ref.toString().indexOf(qrcode) > 0) formData.append(noStbg, true)//添加参数 uploadType(formData, sour…

保障企业数据主权:安全可控的爬虫工具与管理平台

摘要 在数据驱动的时代&#xff0c;企业对数据的需求日益增长&#xff0c;但如何在保障数据主权的前提下高效采集数据&#xff1f;本文深入探讨了选择安全可控爬虫工具与管理平台的重要性&#xff0c;分析了关键特性&#xff0c;并提出实用建议&#xff0c;助力企业维护数据安…

2024新版 黑马程序员《C++零基础入门》笔记——第一章17 数据类型-布尔型

1.数据类型-布尔型 2.代码实践 #include "iostream" using namespace std;int main() {// 布尔&#xff1a;bool 字面量仅仅有2个&#xff1a;true或falsebool flag true; // true 表示是真&#xff0c;本质上是数字1bool flag2 false; // false 表示是…

NVIDIA Drivers、CUDA、Pytorch安装

NVIDIA Drivers、CUDA、Pytorch 这三者的版本有着十分紧密的关联&#xff0c;很容易因为版本不对而重复卸载、重装。 这里写个记录&#xff0c;方便查阅。 一、NVIDIA Drivers、CUDA NVIDIA Drivers、CUDA 的关系可以在这里看到&#xff1a; CUDA Compatibilityhttps://docs.n…

7.25 阿里云OSS上传 + 后台返回token + 导出excel

1.阿里云Oss上传 只需要一点就是上传到云端后&#xff0c;前端调用上传文件接口&#xff0c;返回一个资源路径。 接着在提交表单时&#xff0c;前端把这个路径设置为img的参数即可。 1.1上传限制 只上传图片 Api("阿里云文件管理") CrossOrigin //跨域 RestContr…

C语言进阶——一文带你深入了解“C语言关键字”(中篇)

本篇文章属于C语言进阶篇的“C语言关键字”&#xff0c;旨在分享我对C语言关键字的深度学习和了解。同时带领大家深入浅出的走进C语言进阶知识——关键字篇&#xff01; 目录 一、变量的命名规则 二、标识符的命名规则 一、变量的命名规则 1、命名应当直观且可以拼读&#x…

【基础算法总结】优先级队列

优先级队列 1.最后一块石头的重量2.数据流中的第 K 大元素4.前K个高频单词4.数据流的中位数 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1…

汉兴能源研发费用率下降,“不差钱”募集资金近九成补流?

《港湾商业观察》施子夫 王璐 日前&#xff0c;冲刺创业板的上海汉兴能源科技股份有限公司&#xff08;以下简称&#xff0c;汉兴能源&#xff09;更新了招股书。 2023年6月末&#xff0c;汉兴能源正式递表创业板&#xff0c;保荐机构为长江证券。 从业务属性上来看&#x…

React间的组件通信

一、父传子&#xff08;props&#xff09; 步骤 父组件传递数据&#xff0c;子组件标签身上绑定属性子组件接收数据&#xff0c;props的参数 // 子组件 function Son(props) {return (<div>this is Son, {props.name}</div>) }// 父组件 function App() {const n…

数字看板:跨行业需求下的创新与升级

在当今这个数据驱动的时代&#xff0c;数字看板作为信息展示与决策支持的重要工具&#xff0c;正逐步渗透到各行各业之中。从智慧城市到智能制造&#xff0c;从金融分析到医疗健康&#xff0c;数字看板以其直观、动态、高效的特点&#xff0c;成为了连接数据与决策者的桥梁。本…

keil调试SH79F7416

仿真器JET51A, 调试设置 选择器件 再次点击调试就一切正常啦

在同一台linux服务器上安装2+个mysql服务

1. 制作第二个mysql配置文件my.13306.cnf 如下面的配置。请注意&#xff1a;下面的端口&#xff0c;和路径相关的参数&#xff0c;需要和第一个mysql的配置重合&#xff0c;除了basedir参数&#xff0c;该参数是mysql安装的根路径。 [mysqld] group_concat_max_len 102400 u…

2024年Python3.12.0安装+激活+配置教程,保姆级教学,学好Python的第一步!

目录 Python下载 一.安装步骤 二.软件测试 三.环境配置 附赠《2024年最新Python免费电子书&#xff0c;知识点源码资料》→戳这里 Python下载 Python安装包&Pycharm安装包&#xff0c;永久激活码以打包好&#xff0c;需要的朋友可以直接扫下方CSDN官方认证的安全二维码…