Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)

12.9.1 UTF-8 Unicode编码(4字节)

utf8mb4 字符集具有这些特征:

  • 支持 BMP 和补充字符。

  • 每个多字节字符最多需要四个字节。

utf8mb4utf8mb3 字符集不同,前者支持 BMP 字符,后者只支持 BMP 字符,使用的最大字节数为三个:

  • 对于 BMP 字符,utf8mb4utf8mb3 都有相同的存储特征:同样的代码值、同样的编码、同样的长度。

  • 对于补充字符,utf8mb4 需要四个字节来存储,而 utf8mb3 无法存储该字符。当将 utf8mb3 列转换为 utf8mb4 时,不需要担心补充字符的转换,因为没有。

utf8mb4utf8mb3 的超集,所以对于以下连接操作,结果的字符集为 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;

关于多字节字符集对数据类型存储的信息,请参见字符串类型存储要求