首批通过分布式安全可靠测评,为关键业务系统打造
中文乱码
更新时间:2026-04-09 15:10:59
用户使用 Windows 系统的客户端调用 OceanBase Connector/ODBC 查询时产生中文乱码,系统编码默认是 GBK。
原因是 OceanBase Connector/ODBC 在建立连接时,如果没有指定编码,就会获取系统默认编码 UTF8 MARIADB_CHARSET_INFO *cs= mariadb_get_charset_by_name("auto");。
如果用户系统采用 UTF8 编码进行查询就没有问题,如果是 GBK 编码就无法显示 UTF8 编码数据。 解决方式是在连接建立成功后添加代码,指定读取的数据是系统的编码或者指定的编码,如下所示:
/*设置编码 */
MDBUG_C_PRINT(Connection, "--cs_name:%s", Connection->Charset.cs_info->csname);
if (mysql_set_character_set(Connection->mariadb, Connection->Charset.cs_info->csname))
goto err;