从 MySQL 8 开始,
utf8
字符集实际上是 4byte utf8mb4
,而不是 3byte utf8mb3
,但是 MariaDB 呢?
MariaDB 在某些版本中是否有相同的更新?
当我们现在需要使用最新的 MariaDB/MySQL 服务器保存表情符号等字符时,使用
utf8
安全吗?
utf8
仍然是 utf8mb3
,只有 utf8mb4
是真正的 UTF-8。请参阅文档:
这不太可能改变,因为它破坏了现有代码的行为。
执行此操作的正确方法是具体化,以免引起混淆,使用
utf8mb3
(在 MySQL 中已弃用,并且速度也较慢)或 utf8mb4
。
MariaDB 按照:https://mariadb.com/kb/en/unicode/
10.6 及更高版本:
utf8
别名为 utf8mb4
,但默认情况下通过 UTF8_IS_UTF8MB3
启用 old_mode
,使得 utf8
仍解析为 utf8mb3
。utf8
将来将变成 utf8mb4
,因为默认 old_mode
标志会自动弃用。
10.5 及更早版本:
utf8
是 utf8mb3
的别名,只有 utf8mb4
才是真正的 UTF-8。
MySQL按照https://dev.mysql.com/doc/refman/8.0/en/charset-unicode.html
8.0 及更高版本:
utf8
是 utf8mb3
的别名,只有 utf8mb4
才是真正的 UTF-8。utf8mb3
现已弃用并计划完全删除,未来 utf8
将变为 utf8mb4
。
5.7 及更早版本:
utf8
是 utf8mb3
的别名,只有 utf8mb4
才是真正的 UTF-8。