字符集为GBK时使用unixODBC执行SQL中有中文报字符集错误

【 TiDB 使用环境】测试
【 TiDB 版本】v6.2.0
【复现路径】执行SQL中有中文时必现
【遇到的问题:问题现象及影响】
【资源配置】
服务器版本:RedHat 7.6
GCC版本:4.8.5
unixODBC版本:2.3.11
ODBC驱动版本:8.0.31

tidb数据库字符集和表字符集均为gbk
image

Linux环境变量和代码文本文件均为GBK。odbc驱动配置文件中指定了字符集charset=GBK,如果不指定查询出的数据为乱码。在执行insert语句时如果sql中有中文会有以下报错

当使用bind插入中文时并不会报错,尝试过指定编码set names,但是odbc已经不再支持此类用法,目前未找到解决方式

看看建表语句是否指定其他的字符集;
其实还是用utf8mb4方便一些

8版本的 JDBC 有没有这个问题?

业务系统是gbk,这个坑已经埋了N多年了无法改变

image
将character_set_server也改成gbk;

Oracle迁移过来的?

这个怎么解决的

数据库级、 表级别, 字段级别。优先级递增 对应的字段是什么样的字符集和排序规则。