前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL字符集utf8和utf-8的关系

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

作者头像
星哥玩云
发布2022-08-17 21:33:53
7760
发布2022-08-17 21:33:53
举报
文章被收录于专栏:开源部署开源部署

什么是字符集(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 查找、排序区分大小写
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是字符集(character set)
  • 校对规则(collation)
  • ASCII码
  • Unicode国际化支持
  • UTF-8
  • utf8
  • utf8与utf8mb4的关系
  • 超集
  • 字符集设置
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档