不要在 MySQL 中使用“utf8”

发布于 2022-05-12  1156 次阅读


内容纲要

MySQL 的“utf8”实际上不是真正的 UTF-8。

“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。

MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。

当然,他们并没有对新的字符集广而告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用“utf8”,但这些建议都是错误的。

简单概括如下:

MySQL 的“utf8mb4”是真正的“UTF-8”。
MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。

来自
https://www.infoq.cn/article/in-mysql-never-use-utf8-use-utf8

https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434

我本桀骜少年臣,不信鬼神不信人。
最后更新于 2022-05-12