utf8mb3
字符集具有以下特点:
仅支持 BMP 字符(不支持补充字符)
每个多字节字符最多需要三个字节。
使用 UTF-8 数据但需要补充字符支持的应用程序应使用 utf8mb4
而不是 utf8mb3
(参见 第 12.9.1 节,“utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)”)。
utf8mb3
和 ucs2
中提供完全相同的字符集。也就是说,它们具有相同的 库.
MySQL 推荐使用的字符集是 utf8mb4
。所有新应用程序都应使用 utf8mb4
。
utf8mb3
字符集已弃用。utf8mb3
在 MySQL 8.0.x 和 MySQL 8.4.x LTS 版本系列的生命周期内仍然受支持。
预计在未来主要版本的 MySQL 中将删除 utf8mb3
。
由于更改字符集可能是一项复杂且耗时的任务,因此您现在应该开始为这项更改做好准备,方法是对新应用程序使用 utf8mb4
。有关转换使用 utfmb3 的现有应用程序的指南,请参见 第 12.9.8 节,“在 3 字节和 4 字节 Unicode 字符集之间转换”.
utf8mb3
可用于 CHARACTER SET
子句,而 utf8mb3_
可用于 collation_substring
COLLATE
子句,其中 collation_substring
是 bin
、czech_ci
、danish_ci
、esperanto_ci
、estonian_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 TABLE
或 SELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLUMNS
或 SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
等语句中,以 utf8
或 utf8_
为前缀的字符集或排序规则名称将分别显示为 utf8mb3
或 utf8mb3_
。
utf8mb3
在 CHARACTER SET
子句以外的上下文中也是有效的(但已弃用)。例如:
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
有关与多字节字符集相关的数据类型存储的信息,请参见 字符串类型存储要求.