Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding)

12.9.2 utf8mb3字符集(3字节UTF-8 Unicode编码)

utf8mb3字符集具有以下特征:

  • 仅支持BMP字符(不支持补充字符)

  • 每个多字节字符最多需要三个字节。

如果应用程序使用UTF-8数据但需要补充字符支持,应该使用utf8mb4而不是utf8mb3(见第12.9.1节,“utf8mb4字符集(4字节UTF-8 Unicode编码)”)。

utf8mb3和ucs2字符集提供相同的字符集,即它们具有相同的字符表

Note

MySQL推荐的字符集是utf8mb4。所有新的应用程序都应该使用utf8mb4

utf8mb3字符集已弃用。utf8mb3将在MySQL 8.0.x和后续LTS版本系列中继续支持,也将在MySQL 8.3中支持。

预计在未来的一次主要版本中将删除utf8mb3

由于更改字符集可能是一个复杂且耗时的任务,因此您现在应该开始准备这个变化,使用utf8mb4 для新的应用程序。对于将现有应用程序从utfmb3迁移到utf8mb4的指导,请参见第12.9.8节,“在3字节和4字节Unicode字符集之间转换”

utf8mb3可以在CHARACTER SET子句中使用,并在COLLATE子句中使用utf8mb3_collation_substring,其中collation_substringbinczech_cidanish_ciesperanto_ciestonian_ci等。例如:

CREATE TABLE t (s1 CHAR(1)) CHARACTER SET utf8mb3;
SELECT * FROM t WHERE s1 COLLATE utf8mb3_general_ci = 'x';
DECLARE x VARCHAR(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_danish_ci;
SELECT CAST('a' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_czech_ci;

在诸如SHOW CREATE TABLESELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLUMNSSELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS语句中,以utf8utf8_开头的字符集或排序规则名称将显示为utf8mb3utf8mb3_

utf8mb3也可以在CHARACTER SET子句以外的上下文中使用(但已弃用)。例如:

mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';

有关多字节字符集与数据类型存储的信息,请参见字符串类型存储要求