一架梯子,一头程序猿,仰望星空!
MYSQL基础面试题 > 内容正文

为什么很多开发规范要求MYSQL统一使用utf8mb4字符集?


问题简答

很多开发规范要求MYSQL统一使用utf8mb4字符集是因为utf8mb4字符集相比于utf8字符集具有更广泛的字符支持,支持多国语言,包括一些较为生僻的字符,如emoji表情等

问题详解:

常见的中文字符集

  • UTF-8:它是一种通用的字符集,可以存储多种语言的字符,包括中文。UTF-8是MySQL默认的字符集。
  • GBK:它是中国的国家标准字符集,支持简体中文和繁体中文,但是不支持其他语言的字符。
  • GB2312:它是GBK的前身,只支持简体中文字符。
  • BIG5:它是繁体中文的字符集,不支持简体中文和其他语言的字符。

MYSQL utf8字符集种类

在 MySQL 中,utf8 字符集实际上指的是utf8mb3 的字符集,它只支持最长 3 个字节的 UTF-8 字符。而在 MySQL 5.5.3 版本中引入了 utf8mb4 字符集,它支持最长 4 个字节的 UTF-8 字符,包括了更多的 Unicode 字符集。

目前 MySQL 中主要的 utf8 字符集有以下三种:

  • utf8:即 utf8mb3,支持的最长 UTF-8 字符为 3 个字节,适用于较老的 MySQL 版本。
  • utf8mb4:支持的最长 UTF-8 字符为 4 个字节,包括了更多的 Unicode 字符集,是 MySQL 推荐的字符集之一。
  • utf16:支持的最长 UTF-8 字符为 4 个字节,但是存储空间通常要比 utf8mb4 更大,不如 utf8mb4 使用广泛。