阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL字符集utf8和utf-8的关系

174次阅读
没有评论

共计 1321 个字符,预计需要花费 4 分钟才能阅读完成。

什么是字符集(character set)

  • 字符的二进制编码方式
  • 二进制编码到一套字符的映射
  • 二进制 -> 编码 -> 字符

校对规则(collation)

  • 在字符集内用于比较字符的一套规则

ASCII 码

  • 1 个字节由 8 个二进制位组成
  • 1 个字节可表示 256 种不同的状态(256 个不同符号)
  • ASCII 码规定了 128 个字符(英文字符和一些标点符号)的编码

Unicode 国际化支持

  • 世界上存在多种编码方式,同一个二进制数字被解释成了不同的符号
  • 现存 编码 不能在多语言环境中使用,诞生了 Unicode(统一码)
  • 一个字符的 Unicode 编码是确定的
  • Unicode 编码实现方式各不相同
  • Unicode 的实现方式称为 Unicode 转化格式(UTF)

UTF-8

  • UTF- 8 是 Unicode 的实现方式之一
  • 其它实现方式还有 UTF-16, UTF-32
  • 变长编码,一个符号使用 1~4 个字节表示
  • utf8 是 MySQL 存储 Unicode 数据的一种可选方法

utf8

  • MySQL 中实现了 UTF- 8 编码的 unicode 字符集
  • MySQL 中 utf8 是 utf8mb3 的别名
  • utf8 中,一个符号使用 1~3 个节点表示
  • 对 UTF- 8 支持不彻底,可采用 utf8mb4 字符集

utf8 与 utf8mb4 的关系

  • 都是实现了 UTF- 8 编码的 unicode 字符集
  • utf8 仅支持基本多语言平面 Basic Multilingual Plane (BMP)
  • utf8mb4 支持 BMP 之外的补充字符(如 emoji,emoji 是一种特殊的 Unicode 编码)
  • utf8 一个字符最多使用 3 个字节存储,utf8mb4 一个字符最多使用 4 个字节存储
  • 对于 BMP 字符,utf8 和 utf8mb4 具有相同的编码,相同的长度
  • 对于非 BMP 字符,utf8mb4 使用 4 个字节来存储,utf8 不能存储非 BMP 字符
  • innodb 中默认最大可对 767 个字节建立索引
  • 使用 utf8 的列最多可对 255 个字符建立索引
  • 使用 utf8mb4 的列最多可对 191 个字符建立索引

超集

  • 字符集 A,B,B 支持的所有字符 A 都支持,A 是 B 超集
  • 比如 GBK 字符集是 GB2312 字符集的超集,它们又都是 ASCII 字符集的超集
  • utf8mb4 是 utf8 的超集

字符集设置

set names x 等价于

  • set character_set_client=x;
  • set character_set_connection=x;
  • set character_set_results=x;

–default-character-set 用户连接时设置字符集 等价于

  • set character_set_client=x;
  • set character_set_connection=x;
  • set character_set_result=x;
    init-connect=set names binary
  • 让 client 和 server 交互的时候以 什么模式 (不做任何转化) 来传送

default-character-set

  • 设置 [mysql] 和[client] 中的字符集

character-set-server

  • 设置[mysqld] 进程的默认字符集

collation-server

  • 设置[mysqld] 进程的默认校对规则
  • utf8_general_ci 查找、排序不区分大小写
  • utf8_bin 查找、排序区分大小写

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1321字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中