Mysql 中的 utf8 是假的UTF-8,utf8mb4才是正牌UTF-8
用 utf8mb4 就完事了
MySQL的"utf8"不是UTF-8。
MySQL中的“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
MySQL 开发人员从未修复此错误。他们在2010年发布了一个解决方法:一个新的字符集称为"utf8mb4"。
当然,他们从来没有宣传过这个(可能是因为这个错误太尴尬了)。以致于现在网络上仍然在建议开发者使用“utf8”,但这些建议都是错误的。
简而言之:
- MySQL 的"utf8mb4"表示"UTF-8"。
- MySQL 的"utf8"表示"专有字符编码"。此编码无法编码许多 Unicode 字符。
所有目前使用"utf8"的MySQL和MariaDB用户实际上应该使用"utf8mb4"。任何人都不应该使用"utf8"。