字符集详解

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。字符集详解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

字符集详解

MySQL 字符编码集中有两套 UTF-8 编码实现:utf8utf8mb4

如果使用 utf8 的话,存储 emoji 符号和一些比较复杂的汉字、繁体字就会出错。

  • utf8utf8编码只支持1-3个字节 。 在 utf8 编码中,中文是占 3 个字节,其他数字、英文、符号占一个字节。但 emoji 符号占 4 个字节,一些较复杂的文字、繁体字也是 4 个字节。
  • utf8mb4:UTF-8 的完整实现,正版!最多支持使用 4 个字节表示字符,因此,可以用来存储 emoji 符号。

什么是字符集?

字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。

字符集 就是一系列字符的集合(编码规则)。

每个字符在字符集中都有一个唯一的编码,计算机根据这个编码来识别和处理字符。不同的字符集支持不同的字符范围和编码方式。

  • 字符 转换成 二进制数据的过程称为 字符编码
  • 二进制数据 解析成 字符的过程称为 字符解码

常见的字符集

ASCII 码

ASCII(American Standard Code for Information Interchange)是最早的字符集之一,它使用 7 位二进制数表示 128 个字符,包括英文字母、数字、标点符号和控制字符等。ASCII 码是计算机系统最基本的字符集之一,它为文本数据提供了最基本的编码方式。

在这里插入图片描述

Unicode

随着计算机技术的发展,对于国际化和多语言支持的需求不断增加,ASCII 码已经不能满足各种语言字符的表示需求。于是,Unicode 字符集应运而生。Unicode 采用更多的位数来表示字符,常见的有 16 位的 UCS-2 和 32 位的 UCS-4。

UTF-8

UTF-8(Unicode Transformation Format-8)是一种对 Unicode 进行编码的变长字符集,它可以使用 1 到 4 个字节表示一个字符,根据字符的不同范围自动选择合适的编码长度。UTF-8 是目前互联网上广泛使用的字符集之一,它既能表示 ASCII 字符,又能表示任意国家和地区的字符。

GBK 和 GB2312

GBK 和 GB2312 是中文字符集,用于表示中文字符。GBK 扩展了 GB2312 字符集,支持更多的中文字符,包括繁体字和生僻字。GBK 和 GB2312在中国大陆广泛使用,是中文文本处理的基本字符集。

BIG5

BIG5 主要针对的是繁体中文,收录了 13000 多个汉字。

ANSI

ANSI(American National Standards Institute)是一种字符集标准的通用名称,它实际上不是一个具体的字符集,而是指各种不同的字符集标准。在不同的操作系统和编程环境中,ANSI 可能对应不同的字符集,因此在使用 ANSI 字符集时需要注意平台的兼容性。

在线编码和解码

utf-8转utf-8、Unicode (UTF-8)转Unicode (UTF-8)、utf-8转utf-8编码 (haomeili.net)

MySQL 字符集

查看支持的字符集

可以通过 SHOW CHARSET 命令来查看

默认字符集

在 MySQL5.7 中,默认字符集是 latin1 ;在 MySQL8.0 中,默认字符集是 utf8mb4

字符集的层次级别

  • server(MySQL 实例级别)
  • database(库级别)
  • table(表级别)
  • column(字段级别)

优先级从上往下依次增大

5.x 版本和 8.x 版本都兼容的字符集与排序规则⭐️

字符集:utf8mb4

排序规则:utf8mb4_general_ci

解析

  1. 字符集:utf8mb4 是 MySQL 5.x 和 8.x 版本都兼容的字符集。它是支持四字节的 UTF-8 编码,可以用于存储包含 Emoji 表情等特殊字符的文本数据。
  2. 排序规则
    • 在 MySQL 5.x 版本中,默认的排序规则是 utf8mb4_general_ci,
    • 而在 MySQL 8.x 版本中,默认的排序规则是 utf8mb4_0900_ai_ci。
    • 这是因为 MySQL 8.x 引入了新的排序规则算法 utf8mb4_0900_ai_ci,它在一些情况下(例如对特殊字符的排序)表现更为准确和符合语言习惯。

所以,**如果希望在 MySQL 5.x 和 8.x 版本中都兼容,并且不需要新的排序规则算法,可以使用 utf8mb4 字符集和 utf8mb4_general_ci 排序规则。**但如果需要更准确的排序和对特殊字符的支持,可以考虑使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 排序规则。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/189734.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!