MySQL 8.4 Release Notes
12.9.1 UTF-8 Unicode编码(4字节)
utf8mb4 字符集具有这些特征:
-
支持 BMP 和补充字符。
-
每个多字节字符最多需要四个字节。
utf8mb4
与 utf8mb3
字符集不同,前者支持 BMP 字符,后者只支持 BMP 字符,使用的最大字节数为三个:
-
对于 BMP 字符,
utf8mb4
和utf8mb3
都有相同的存储特征:同样的代码值、同样的编码、同样的长度。 -
对于补充字符,
utf8mb4
需要四个字节来存储,而utf8mb3
无法存储该字符。当将utf8mb3
列转换为utf8mb4
时,不需要担心补充字符的转换,因为没有。
utf8mb4
是 utf8mb3
的超集,所以对于以下连接操作,结果的字符集为 utf8mb4
,排序规则为 utf8mb4_col
:
SELECT CONCAT(utf8mb3_col, utf8mb4_col);
类似地,在 WHERE
子句中进行的比较也遵循 utf8mb4_col
排序规则:
SELECT * FROM utf8mb3_tbl, utf8mb4_tbl
WHERE utf8mb3_tbl.utf8mb3_col = utf8mb4_tbl.utf8mb4_col;
关于多字节字符集对数据类型存储的信息,请参见字符串类型存储要求。