---
title: 中文字符乱码-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于中文字符乱码相关的常见问题和使用技巧，帮助您快速解决中文字符乱码的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 中文字符乱码

更新时间：2026-07-08 08:01

适用版本： V3.1.x、V3.2.x、V3.3.x、V3.4.x、V4.0.x、V4.1.x、V4.2.x 内容类型：Troubleshoot  

## 问题现象

### Windows 系统下 Web 版 ODC 查询结果集时，生僻字显示乱码

Windows 系统下，使用 Web 版 ODC 查询 Oracle 租户的数据（UTF8 字符集）时，生僻字显示异常： 李㭎显示为李□、邓显示为邓□。

通过 OBClient 查询未显示乱码：

```shell
 obclient> select aac003 from ZC01_A where AAC003='李㺭言';
+-----------+
| AAC003    |
+-----------+
| 李㺭言    |
| 李㺭言    |
| 李㺭言    |
+-----------+
3 rows in set (1.64 sec)

obclient> select aac003 from  AC29 where YAC005='C21725577';
+-----------+
| AAC003    |
+-----------+
| 李明     |
+-----------+
1 row in set (0.01 sec)

obclient> select aac003 from zc01_a where ZCA001='1444600';
+--------+
| AAC003 |
+--------+
| 邓    |
+--------+
1 row in set (0.00 sec)

```

### macOS 系统下 ODC 查询结果集时，中文字符显示乱码

macOS 系统下，OBserver 的字符集编码为 GBK 时，SQL 窗口中执行 SQL 语句时，返回的结果中出现中文字符乱码。

### 命令行窗口的结果集中出现中文字符乱码

Windows 系统下，OBserver 的字符集编码为 utf8mb4 时，命令行窗口中执行 SQL 语句时，返回的结果中出现中文字符乱码，且插入中文数据时报错 Incorrect string value。

![3.0](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/knowledge-base/3.sql-execution/3.0.png)

## 问题原因

- Windows 系统下缺少字体，需要安装并设置 IE 默认字体。
 - 数据迁移时，OMS 同步链路的编码配置不正确。
 - 租户使用 GBK 编码时不支持生僻字对应的编码值，而 ODC 目前通过 UTF8 编码连接数据库，无法正确转码。

  ODC 的命令行窗口集成了 OBClient 工具，需要通过 OBClient 工具将数据库默认的客户端字符集调整成与操作系统字符集一致。Windows 操作系统的默认字符编码为 GBK，Windows 操作系统不能自动匹配 OBClient 客户端的字符编码，导致 OBClient 客户端与 Windows 操作系统字符集不一致：

  | 位置 | Linux | Mac | Windows |
  | --- | --- | --- | --- |
  | SQL 窗口 | UTF8 | UTF8 | UTF8 |
  | 命令行窗口 | UTF8 | UTF8 | GBK |

  数据库认为的客户端编码可以通过数据库参数查看，查看方法：

  ```sql
  show variables like '%character_set_c%';

  ```

  具体参数包括：

     - `character_set_client`：客户端编码。
     - `character_set_connection`：连接编码。
     - `character_set_results`：结果集编码。

## 解决方法

1. [下载安装 IE 字体](https://www.zitijia.com/i/259398090304277561.html) 。
 2. 将 Windows 系统下的浏览器字体设置为 Hiragino Sans GB 或者 monospace：打开 Google 浏览器 > 设置 > 外观 > 自定义字体 > 标准字体选择 Hiragino Sans GB 即可。

   #### 注意

   需要关闭所有 ODC 连接后，再重新打开。
 3. 如果出现 GBK 租户乱码问题，可以将参数 `character_set_client`、`character_set_connection` 和 `character_set_results` 的字符集编码设置为 `utf8mb4`。

      - 在 ODC 的 **运维管理** > **全局变量** > **会话属性** 中修改会话级别编码。

       ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/knowledge-base/3.sql-execution/2.png)
      - 在命令行窗口中，调整数据库认为客户端使用的字符集，将其与实际客户端的字符集兼容。

       ```sql
       set names utf8mb4;

       ```

       调整完成后，在当前 session 内再执行 SQL ，查看结果集时即可避免中文乱码问题。

Previous

[查看 ODC SQL 执行记录页面的注意事项](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000234593)

Next

[ODC 中更新数据报错 Cannot generate update DML,at lease one column should be updated](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000234595) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
