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

目录

什么是字符集(character set)

校对规则(collation)

ASCII码

Unicode国际化支持

UTF-8

utf8

utf8与utf8mb4的关系

超集

字符集设置

什么是字符集(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 查找、排序区分大小写

参考

Unicode Support

字符集与编码杂谈

ASCII,Unicode 和 UTF-8

清官谈mysql中utf8和utf8mb4区别

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

标签:之一   不能   mys   init   lan   编码方式   dev   区分大小写   cte

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/YangJiaXin/p/10772229.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值