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

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

问题现象

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

会发现:

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

问题的风险及影响

SQL语句执行失败。

问题影响的版本

所有版本。

问题发生原因

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

解决方法及规避方式

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

问题分析和处理过程

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

经验总结

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

相关推荐
莫叫石榴姐22 分钟前
数仓建模:DataX同步Mysql数据到Hive如何批量生成建表语句?| 基于SQL实现
大数据·数据库·hive·hadoop·sql·mysql·数据分析
莫叫石榴姐2 小时前
趣味SQL | 从围棋收官到秦楚大战的数据库SQL实现(下)
大数据·数据库·人工智能·sql·算法
Yan-D2 小时前
【Redis 源码】5zskiplist跳跃表
数据库·redis·缓存
开源哥662 小时前
【含文档】基于Springboot+微信小程序 的高校二手商品交易平台(含源码+数据库+lw)
数据库·spring boot·微信小程序
好记忆不如烂笔头abc2 小时前
一次oracle迁移11g到19c后用到的对象数量对比脚本
数据库·oracle
尘浮生2 小时前
Java项目实战II基于Java+Spring Boot+MySQL的美容院管理系统设计与实现(源码+数据库+文档)
java·开发语言·数据库·spring boot·mysql·maven·intellij-idea
白总Server2 小时前
Exabyte在云计算中应用?
大数据·数据库·redis·mysql·缓存·云计算·cdn
lu9up3 小时前
Oracle逻辑备份脚本【生产环境适用】
数据库·oracle
W…Y3 小时前
【MySQL】数据库基础认识
linux·网络·数据库·mysql