千家信息网

Dapper操作MySQL数据库获取JSON数据时中文乱码怎么办

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"Dapper操作MySQL数据库获取JSON数据时中文乱码怎么办"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大
千家信息网最后更新 2024年11月24日Dapper操作MySQL数据库获取JSON数据时中文乱码怎么办

本篇内容介绍了"Dapper操作MySQL数据库获取JSON数据时中文乱码怎么办"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码。

为了引出最终问题出在什么地方,我们重头开始进行讲解,首先我们给出如下测试实体以及在数据库中的表,如下:

为了数据操作方便,我们通过包【Dapper.SimpleCRUD】来操作,插入数据和查询数据如下:

如上一切正常,接下来我们将存储JSON数据的列类型修改为json,然后再来进行如上操作,结果会发现获取数据中文将乱码:

刚开始我猜想难道用的包【Dapper.SimpleCRUD】在映射时出了问题,于是我用Dapper进行如下查询,依然会出现如上中文乱码:

所以由上基本可以得出结论:针对MySQL中的类型json,若json数据中存在中文,则利用Dapper查询时将出现乱码。那么如何解决这个问题呢?于是乎,在添加数据时,我将中文进行URL编码,再查询时进行解码即可,如下:

当然,上述解决方案以实际项目业务而去解决,我们项目需要获取到JSON数据中的中文然后通过URL传输,免去请求接口再去获取所存储的名称。到此我们了解了Dapper针对json数据类型将导致查询中文乱码的问题,但是其根本原因是什么呢?上述连接MySQL的驱动,是使用Oracle官方所提供的驱动且为最新版本,如下:

我们知道通过EF Core操作MySQL数据库,若是利用官方包有一堆问题存在,所以大多都是采用的包【Pomelo.EntityFrameworkCore.MySql】,因为里面包含【MySqlConnector】,换句话说也就存在MySQL的驱动连接,所以这里我们尝试利用该包替换上述【MySql.Data】包,结果发现中文不再乱码。

综上所述,我们需要注意的是若利用官方驱动包【MySql.Data】,当配置MySQL中的列类型为json时,若json数据中存在中文,则利用Dapper查询时将会出现中文乱码,需要进行转换。上述在数据库连接字符串中我们设置为utf8mb4,所以理论上应该和编码没有任何关系。

"Dapper操作MySQL数据库获取JSON数据时中文乱码怎么办"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 中文 乱码 数据库 查询 问题 类型 驱动 如上 官方 结果 项目 存储 怎么办 时中 接下来 内容 实际 更多 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国网络安全公司和越南政府 内存数据库技术流视频 淘宝远程服务器连接不上 浦东新区信息软件开发平台资质 软件开发转正总结ppt 广东泽宝付互联网科技 设备智能云监控软件开发 中学生网络安全教育短视频 查询共有多少个班级用数据库 面向对象数据库有产品吗 高速服务器丢包钓鱼 局主要领导网络安全 学校开展网络安全教育周 jpa 数据库连接失败 网络安全工具 软件 网络管理服务器套哪个子目 ca服务器是什么 达梦数据库控制台怎么登陆 常熟口碑好的网络技术是什么 u8管理服务器不能启动 网络安全审计策略 海南国产信创服务器在哪买 嵌入式软件开发经典面试题 戴尔服务器默认管理员密码 山东同维互联网科技有限公司 vb数据库连接串加密 重庆费用管理软件开发公司 浏览器显示重启服务器连接失败 如何保证系统的网络安全性 如何增强服务器系统安全
0