写点什么

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

作者:YashanDB
  • 2024-09-25
    广东
  • 本文字数:367 字

    阅读完需:约 1 分钟

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

问题现象

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



会发现:



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

问题的风险及影响

SQL 语句执行失败。

问题影响的版本

所有版本。

问题发生原因

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


解决方法及规避方式

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

问题分析和处理过程

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

经验总结

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

用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】客户端字符集与数据库字符集兼容问题_yashandb_YashanDB_InfoQ写作社区