【YashanDB知识库】客户端字符集与数据库字符集兼容问题

本文转自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7352675.html?templateId=1718516

问题现象

客户端yasql配置字符集为GBK,服务端yasdb配置字符集为UTF8,之后执行语句:

会发现:

期望是两个都失败(强检测字符集),或者两个都成功(弱检测字符集,直接将字符当做数据存储,不关心数据内容是什么),而不是一个成功一个失败。

问题的风险及影响

SQL语句执行失败。

问题影响的版本

所有版本。

问题发生原因

李强虽然是UTF8编码,但是在yasql按照GBK解析成功了(也是乱码,但是只要能等价转换就没有问题)。但是李不行,因为字符长度不对。

解决方法及规避方式

修改字符集到bash、yasql、yasdb的字符集一致。

问题分析和处理过程

看UTF8编码和GBK编码的原理,以及命令行、客户端、数据库都是如何处理字符的。

经验总结

尽量不要将命令行、客户端、数据库这三者的字符集配成不相同的。

相关推荐
死磕java的孤行者9 分钟前
Redis 分布式锁
数据库·redis·分布式
越甲八千11 分钟前
pyqt SQL Server 数据库查询-优化2
数据库·windows·pyqt
敢敢のwings1 小时前
C++信号与槽机制自实现
开发语言·数据库·c++
杭州杭州杭州2 小时前
MySQL超全笔记
数据库·笔记·mysql
OpenVINO生态社区4 小时前
【汽车功能安全:软件与硬件缺一不可】
数据库·安全·汽车
程序猿阿伟5 小时前
《打破SQL与AI框架对接壁垒,解锁融合新路径》
数据库·人工智能·sql
点燃大海5 小时前
MySQL表结构导出(Excel)
java·数据库·python·mysql·spring
꧁坚持很酷꧂5 小时前
Qt远程连接数据库,注册,登录
开发语言·数据库·qt
加油,旭杏6 小时前
【Redis】服务端高并发分布式结构
数据库·redis·分布式
꧁༺朝花夕逝༻꧂6 小时前
MySQL--数据备份
数据库·mysql