# 10.9.2 utf8mb3 字符集(3 字节 UTF-8 Unicode 编码)
这utf8mb3
字符集具有以下特点:
仅支持 BMP 字符(不支持补充字符)
每个多字节字符最多需要三个字节。
使用 UTF-8 数据但需要补充字符支持的应用程序应使用
utf8mb4
而不是utf8mb3
(看第 10.9.1 节,“utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)”)。
完全相同的字符集可用于utf8mb3
和ucs2
.也就是说,它们具有相同的曲目.
笔记
历史上,MySQL 曾使用utf8
作为别名utf8mb3
;从 MySQL 8.0.28 开始,utf8mb3
专门用于输出显示
表示此字符集时的语句和信息模式表中。
在未来的某个时刻utf8
有望成为参考utf8mb4
.为了避免含义模糊utf8
,考虑指定utf8mb4
明确地用于字符集引用而不是utf8
.
您还应该知道,utf8mb3
不推荐使用字符集,您应该期望它在未来的 MySQL 版本中被删除。请用utf8mb4
反而。
utf8mb3
可用于字符集
条款,和utf8mb3_*
collation_substring*
在整理
子句,其中*collation_substring
*是斌
,捷克语
,丹麦语_ci
,esperanto_ci
,爱沙尼亚语_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
, 所以在诸如显示创建表
要么从 INFORMATION_SCHEMA.COLUMNS 中选择 CHARACTER_SET_NAME
要么从 INFORMATION_SCHEMA.COLUMNS 中选择 COLLATION_NAME
, 用户看到名字utf8
要么utf8_*
collation_substring*
.
utf8mb3
在其他情况下也有效字符集
条款。例如:
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
有关与多字节字符集相关的数据类型存储的信息,请参阅字符串类型存储要求.