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

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

问题现象

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

会发现:

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

问题的风险及影响

SQL语句执行失败。

问题影响的版本

所有版本。

问题发生原因

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

解决方法及规避方式

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

问题分析和处理过程

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

经验总结

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

相关推荐
Geoking.14 小时前
Redis 的 RDB 与 AOF:持久化机制全解析
数据库·redis·缓存
鱼跃鹰飞15 小时前
面试题:说一说redis和Memcached的区别
数据库·redis·memcached
深念Y15 小时前
中兴微随身WiFi 板号UZ901_v1.6 影腾Y1新版本 增加SIM卡槽 开启ADB 去云控 改串号教程 下
数据库·adb
顾西爵霞15 小时前
远程访问centos7并连接Mariadb
数据库·centos·mariadb
m0_7482299915 小时前
Laravel7.x核心特性全解析
c语言·数据库·c#
weixin_4365250715 小时前
若依多租户版: 页面新增菜单, 执行菜单SQL
前端·数据库·sql
2601_9498683615 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 数据持久化实现
java·数据库·flutter
无心水16 小时前
数据库字符串类型详解:VARCHAR、VARCHAR2、CHARACTER VARYING的区别与选择指南
数据库·后端·varchar·varchar2·character·字符串类型·2025博客之星
KIN_DIN16 小时前
数据库索引
数据库·oracle
代码N年归来仍是新手村成员16 小时前
DynamoDB 速通
数据库·nosql·aws