MySQL的UTF-8和UTF-8mb4经常被混淆。它们的关键区别在于每个字符支持的字节数。本指南简要解释了为什么UTF-8mb4更适合Unicode和Emoji支持。
MySQL转向UTF-8mb4是为了解决一个核心问题:UTF-8无法存储4字节字符。尝试存储会导致错误:
incorrect string value: ‘x77xd0’ for column ‘column_name_here’ at row 1
什么是UTF-8?
UTF-8是将Unicode字符编码为二进制数据的一种方法。
为什么要使用UTF8mb4?
它支持4字节字符(例如Emoji),而UTF-8仅支持3字节字符。
如何使用UTF8mb4?
CREATE TABLE test_table (col VARCHAR(100)) CHARACTER SET utf8mb4;
UTF-8与UTF-8mb4的区别?
UTF-8每个字符支持3个字节,而UTF-8mb4支持4个字节。
结论:
为了避免在使用Unicode字符和Emoji时出现问题,务必使用UTF-8mb4。 欲了解更多信息,请参考文章《MySQL的UTF-8:真相是什么?》 (假设这篇文章存在)。