11---
22title : 字符集和排序规则
33aliases : ['/docs-cn/dev/character-set-and-collation/','/docs-cn/dev/reference/sql/characterset-and-collation/','/docs-cn/dev/reference/sql/character-set/']
4- summary : TiDB 支持的字符集包括 ascii、binary、gbk、latin1、utf8 和 utf8mb4。排序规则包括 ascii_bin、binary、gbk_bin、gbk_chinese_ci、latin1_bin、utf8_bin、utf8_general_ci、utf8_unicode_ci、utf8mb4_0900_ai_ci、utf8mb4_0900_bin、utf8mb4_bin、utf8mb4_general_ci 和 utf8mb4_unicode_ci。 TiDB 强烈建议使用 utf8mb4 字符集,因为它支持更多字符。在 TiDB 中,默认的排序规则受到客户端的连接排序规则设置的影响。如果客户端使用 utf8mb4_0900_ai_ci 作为连接排序规则,TiDB 将遵循客户端的配置。TiDB 还支持新的排序规则框架,用于在语义上支持不同的排序规则 。
4+ summary : 了解 TiDB 支持的字符集和排序规则 。
55---
66
77# 字符集和排序规则
@@ -99,17 +99,18 @@ SHOW CHARACTER SET;
9999```
100100
101101```
102- +---------+-------------------------------------+-------------------+--------+
103- | Charset | Description | Default collation | Maxlen |
104- +---------+-------------------------------------+-------------------+--------+
105- | ascii | US ASCII | ascii_bin | 1 |
106- | binary | binary | binary | 1 |
107- | gbk | Chinese Internal Code Specification | gbk_chinese_ci | 2 |
108- | latin1 | Latin1 | latin1_bin | 1 |
109- | utf8 | UTF-8 Unicode | utf8_bin | 3 |
110- | utf8mb4 | UTF-8 Unicode | utf8mb4_bin | 4 |
111- +---------+-------------------------------------+-------------------+--------+
112- 6 rows in set (0.00 sec)
102+ +---------+-------------------------------------+--------------------+--------+
103+ | Charset | Description | Default collation | Maxlen |
104+ +---------+-------------------------------------+--------------------+--------+
105+ | ascii | US ASCII | ascii_bin | 1 |
106+ | binary | binary | binary | 1 |
107+ | gb18030 | China National Standard GB18030 | gb18030_chinese_ci | 4 |
108+ | gbk | Chinese Internal Code Specification | gbk_chinese_ci | 2 |
109+ | latin1 | Latin1 | latin1_bin | 1 |
110+ | utf8 | UTF-8 Unicode | utf8_bin | 3 |
111+ | utf8mb4 | UTF-8 Unicode | utf8mb4_bin | 4 |
112+ +---------+-------------------------------------+--------------------+--------+
113+ 7 rows in set (0.000 sec)
113114```
114115
115116TiDB 支持以下排序规则:
@@ -124,6 +125,8 @@ SHOW COLLATION;
124125+--------------------+---------+-----+---------+----------+---------+---------------+
125126| ascii_bin | ascii | 65 | Yes | Yes | 1 | PAD SPACE |
126127| binary | binary | 63 | Yes | Yes | 1 | NO PAD |
128+ | gb18030_bin | gb18030 | 249 | | Yes | 1 | PAD SPACE |
129+ | gb18030_chinese_ci | gb18030 | 248 | Yes | Yes | 1 | PAD SPACE |
127130| gbk_bin | gbk | 87 | | Yes | 1 | PAD SPACE |
128131| gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 | PAD SPACE |
129132| latin1_bin | latin1 | 47 | Yes | Yes | 1 | PAD SPACE |
@@ -136,7 +139,7 @@ SHOW COLLATION;
136139| utf8mb4_general_ci | utf8mb4 | 45 | | Yes | 1 | PAD SPACE |
137140| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 | PAD SPACE |
138141+--------------------+---------+-----+---------+----------+---------+---------------+
139- 13 rows in set (0.00 sec)
142+ 15 rows in set (0.000 sec)
140143```
141144
142145> ** 警告:**
@@ -170,7 +173,7 @@ SHOW COLLATION WHERE Charset = 'utf8mb4';
1701735 rows in set (0.001 sec)
171174```
172175
173- TiDB 对 GBK 字符集的支持详情见 [ GBK] ( /character-set-gbk.md ) 。
176+ TiDB 对 GBK 字符集的支持详情参见 [ GBK 字符集 ] ( /character-set-gbk.md ) ,对 GB18030 字符集的支持详情参见 [ GB18030 字符集 ] ( /character-set-gb18030 .md) 。
174177
175178## TiDB 中的 ` utf8 ` 和 ` utf8mb4 `
176179
@@ -519,9 +522,9 @@ SELECT VARIABLE_VALUE FROM mysql.tidb WHERE VARIABLE_NAME='new_collation_enabled
5195221 row in set (0.00 sec)
520523```
521524
522- 在新的排序规则框架下,TiDB 能够支持 ` utf8_general_ci ` 、` utf8mb4_general_ci ` 、` utf8_unicode_ci ` 、` utf8mb4_unicode_ci ` 、` utf8mb4_0900_bin ` 、` utf8mb4_0900_ai_ci ` 、` gbk_chinese_ci ` 和 ` gbk_bin ` 这几种排序规则,与 MySQL 兼容。
525+ 在新的排序规则框架下,TiDB 能够支持 ` utf8_general_ci ` 、` utf8mb4_general_ci ` 、` utf8_unicode_ci ` 、` utf8mb4_unicode_ci ` 、` utf8mb4_0900_bin ` 、` utf8mb4_0900_ai_ci ` 、` gbk_chinese_ci ` 、 ` gbk_bin ` 、 ` gb18030_chinese_ci ` 和 ` gb18030_bin ` 这几种排序规则,与 MySQL 兼容。
523526
524- 使用 ` utf8_general_ci ` 、` utf8mb4_general_ci ` 、` utf8_unicode_ci ` 、` utf8mb4_unicode_ci ` 、` utf8mb4_0900_ai_ci ` 和 ` gbk_chinese_ci ` 中任一种时,字符串之间的比较是大小写不敏感 (case-insensitive) 和口音不敏感 (accent-insensitive) 的。同时,TiDB 还修正了排序规则的 ` PADDING ` 行为:
527+ 使用 ` utf8_general_ci ` 、` utf8mb4_general_ci ` 、` utf8_unicode_ci ` 、` utf8mb4_unicode_ci ` 、` utf8mb4_0900_ai_ci ` 、 ` gbk_chinese_ci ` 和 ` gb18030_chinese_ci ` 中任一种时,字符串之间的比较是大小写不敏感 (case-insensitive) 和口音不敏感 (accent-insensitive) 的。同时,TiDB 还修正了排序规则的 ` PADDING ` 行为:
525528
526529``` sql
527530CREATE TABLE t (a varchar (20 ) charset utf8mb4 collate utf8mb4_general_ci PRIMARY KEY );
0 commit comments