10.9.2 utf8mb3 字符集(3 字节 UTF-8 Unicode 编码)
utf8mb3
字符集具有以下 Feature:
-
仅支持 BMP 字符(不支持补充字符)
-
每个多字节字符最多需要三个字节。
使用 UTF-8 数据但需要辅助字符支持的应用程序应使用utf8mb4
而不是utf8mb3
(请参阅第 10.9.1 节“ utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)”)。
utf8mb3
和ucs2
中提供了完全相同的字符集。也就是说,它们具有相同的repertoire。
utf8
是utf8mb3
的别名;字符限制是隐式的,而不是名称中的显式。
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 utf8) COLLATE utf8_czech_ci;
MySQL 立即将语句中的utf8mb3
实例转换为utf8
,因此在诸如SHOW CREATE TABLE
或SELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLUMNS
或SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
的语句中,用户将看到名称utf8
或utf8_collation_substring
。
utf8mb3
在除CHARACTER SET
子句之外的上下文中也有效。例如:
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
有关与多字节字符集相关的数据类型存储的信息,请参见字符串类型存储要求。