MariaDB中的`utf8`还是`utf8mb3`吗?

问题描述 投票:0回答:2

从 MySQL 8 开始,

utf8
字符集实际上是 4byte
utf8mb4
,而不是 3byte
utf8mb3
,但是 MariaDB 呢?

MariaDB 在某些版本中是否有相同的更新?

当我们现在需要使用最新的 MariaDB/MySQL 服务器保存表情符号等字符时,使用

utf8
安全吗?

mysql types character-encoding mariadb
2个回答
6
投票

utf8
仍然是
utf8mb3
,只有
utf8mb4
是真正的 UTF-8。请参阅文档:

这不太可能改变,因为它破坏了现有代码的行为。


0
投票

执行此操作的正确方法是具体化,以免引起混淆,使用

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。

© www.soinside.com 2019 - 2024. All rights reserved.