1. 首页
  2. >
  3. 数据库技术
  4. >
  5. MySQL

永远不要在MySQL中使用utf8,要改用utf8mb4

永远不要在MySQL中使用utf8,要改用utf8mb4

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"。

英语原文地址:https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434