MySQL 中,常用的字符集及其主要区别如下:

1. utf8

  • 简介: 支持 Unicode 编码,最多使用 3 个字节表示一个字符。
  • 特点:
    • 可表示大多数常见的字符(如基本拉丁字符、汉字、日文假名等)。
    • 限制: 不支持部分需要 4 字节的字符(如某些表情符号 Emoji)。
  • 适用场景: 一般文本存储,适合大部分语言文字但不含特殊 Emoji 的场景。

2. utf8mb4

  • 简介: 完整版的 UTF-8 编码,支持最多 4 个字节表示一个字符。
  • 特点:
    • 兼容 utf8,并增加对 Emoji 和其他 4 字节字符的支持。
    • 存储空间需求高: 某些字符占用 4 字节。
  • 适用场景: 需要支持 Emoji 或扩展字符(如特殊语言、符号等)的应用场景。

3. latin1 (又称 ISO-8859-1)

  • 简介: 单字节字符集,每个字符占用 1 字节,支持欧洲语言(如英语、西班牙语、德语等)。
  • 特点:
    • 存储效率高。
    • 不支持亚洲语言和特殊符号。
  • 适用场景: 仅涉及基本拉丁字符的场景,如纯英文系统。

4. gbk

  • 简介: 国标字符集,主要用于简体中文。
  • 特点:
    • 对中文的支持较好。
    • 不支持 Unicode,无法混合处理多种语言。
  • 适用场景: 仅涉及中文的应用。

5. gb2312

  • 简介: 是 GBK 的早期版本,支持简体中文的基本字符集。
  • 特点:
    • 支持的字符少于 GBK。
    • 已逐步被 GBK 取代。
  • 适用场景: 旧系统或简体中文场景。

6. ascii

  • 简介: 最基本的字符集,仅支持标准 ASCII 字符(0-127)。
  • 特点:
    • 存储效率最高。
    • 只支持英文和少量特殊符号。
  • 适用场景: 纯英文环境,且对存储效率要求高的场景。

选择字符集的建议:

  1. 国际化支持: 优先选择 utf8mb4
  2. 仅英文字符: 可使用 asciilatin1
  3. 中文环境: 可选择 utf8mb4gbk(推荐 utf8mb4)。
  4. 兼容性需求: 若涉及 4 字节字符或 Emoji,必须使用 utf8mb4
MySQL 常用字符集比较
MySQL 常用字符集比较


MySQL 中常用的字符集包括 utf8, utf8mb4, latin1, gbk, gb2312ascii。不同字符集主要在支持的字符范围和存储效率上有所差异。建议根据具体应用场景选择合适的字符集,例如,utf8mb4 适合国际化支持,latin1 适合仅英文场景,gbk 则用于中文场景。