PingKai Logo下载

GB18030-2022 字符集

概述

平凯数据库从 v7.1 开始支持 GB18030-2022 字符集。本文档介绍平凯数据库对 GB18030-2022 字符集的支持和兼容情况。

tidb> SHOW CHARACTER SET WHERE CHARSET = 'gb18030';
+---------+---------------------------------+--------------------+--------+
| Charset | Description                     | Default collation  | Maxlen |
+---------+---------------------------------+--------------------+--------+
| gb18030 | China National Standard GB18030 | gb18030_chinese_ci |      4 |
+---------+---------------------------------+--------------------+--------+
1 row in set (0.00 sec)

tidb> SHOW COLLATION WHERE CHARSET = 'gb18030';
+--------------------+---------+------+---------+----------+---------+
| Collation          | Charset | Id   | Default | Compiled | Sortlen |
+--------------------+---------+------+---------+----------+---------+
| gb18030_bin        | gb18030 |  249 |         | Yes      |       1 |
| gb18030_chinese_ci | gb18030 |  248 | Yes     | Yes      |       2 |
+--------------------+---------+------+---------+----------+---------+
2 rows in set (0.00 sec)

与 MySQL 的兼容性

本节介绍平凯数据库与 MySQL 对 GB18030 字符集的兼容情况。

字符兼容性

  • 平凯数据库支持 GB18030-2022 的字符,MySQL 支持 GB18030-2005 的字符,因此部分字符的编解码结果不同。

  • 对于合法而未分配 code point 的 GB18030 字符,比如 0xFE39FE39,MySQL 支持以 16 进制的方式写入数据库中,并保存为 ?,而平凯数据库会禁止这种字符的写入。

排序规则兼容性

平凯数据库支持的 gb18030_bin 与 MySQL 支持的 gb18030_bin 排序规则不一致,平凯数据库是将 GB18030 转换成 UTF8MB4 然后做二进制排序。

组件兼容性

  • TiFlash、TiDB Data Migration (DM) 和 TiCDC 目前不支持 GB18030 字符集。

  • Dumpling 在 v7.1.8-5.1 之前不支持导出 charset=GB18030 的表,TiDB Lightning 在 v7.1.8-5.1 之前不支持导入 charset=GB18030 的表。

  • TiDB Backup & Restore(BR)在 v7.1.8-5.1 之前不支持恢复 charset=GB18030 的表。另外,任何版本的 BR 都不支持恢复 charset=GB18030 的表到 v7.1.8-5.1 之前的平凯数据库集群。