utf8mb3
字符集具有以下特点
:
仅支持 BMP 字符(不支持增补字符)
每个多字节字符最多需要三个字节。
使用 UTF-8 数据但需要补充字符支持的应用程序应该使用utf8mb4
而不是utf8mb3
(请参阅
第 10.9.1 节,“utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)”)。
utf8mb3
和
中可用的字符集完全相同
ucs2
。也就是说,它们具有相同的
曲目。
历史上,MySQL 曾utf8
作为utf8mb3
; 的别名。从 MySQL 8.0.28 开始,当表示此字符集时
,utf8mb3
专门用于语句的输出和信息模式表中。SHOW
utf8
预计
在未来的某个时间点将成为参考utf8mb4
。为避免 的含义含糊不清
utf8
,请考虑
utf8mb4
明确指定字符集引用而不是utf8
。
您还应该知道该utf8mb3
字符集已被弃用,您应该期望它在未来的 MySQL 版本中被删除。请
utf8mb4
改用。
utf8mb3
可以用在CHARACTER
SET
从句中,
在从句中,where
is
, ,
, ,
, 等等。例如:
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;
在 MySQL 8.0.29 之前,utf8mb3
in 语句的实例被转换为utf8
. 在 MySQL 8.0.30 及更高版本中,情况正好相反,因此在SHOW CREATE TABLE
or
SELECT CHARACTER_SET_NAME FROM
INFORMATION_SCHEMA.COLUMNS
或之类的语句中SELECT
COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
,用户会看到以 or 为前缀的字符集或排序规则
utf8mb3
名称utf8mb3_
。
utf8mb3
CHARACTER SET
在子句以外的上下文中也有效(但已弃用) 。例如:
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
有关与多字节字符集相关的数据类型存储的信息,请参阅 字符串类型存储要求。