10.9.1 utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)

utfmb4字符集具有以下 Feature:

  • 支持 BMP 和补充字符。

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

utf8mb4utf8mb3字符集形成对比,后者仅支持 BMP 字符,每个字符最多使用三个字节:

  • 对于 BMP 字符,utf8mb4utf8mb3具有相同的存储 Feature:相同的代码值,相同的编码,相同的长度。

  • 对于补充字符,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;

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