关于ASCII和Unicode与utf8的关系


前言

提示:在了解utf8mb4之前,需要先了解utf8与ASCII和unicode的区别:


提示:以下是本篇文章正文内容,下面案例可供参考

一、ASCII码

ASCII:8bits的英文编码,实际使用低7位,最多表示128个字符。之前是控制字符,之后是有效字符。如:110 0001 >>> a(97),128个字符对于全球字符数量来说明显不够的。

二、Unicode

Unicode:使用两字节对全球主流字符进行统一编码,有65536个编码。

三、UTF8

UTF指的是:Unicode Transfer Format,即Unicode传输编码。

UTF传输规则:
ASCII
110  0001  >>> a(97)
当传输字符为一个字节时,UTF传输固定格式如下,将一个字节拆分为两段,低6位放在第二段低6位,剩下的1位放在第一段最后1位,其余补0
110 xxxxx   10 xxxxxx   大概可以传输的字符有2的12次方减1种字符

Unicode 
1011 0000 1101 1101 >>>汉
当传输字符为两个字节时,UTF传输固定格式如下,将两个字节拆分为三段段,低6位放在第三段低6位,中间6位放在第二段低6位,高4位放在第一段低4位
110xxxxx   10xxxxxx	10xxxxxx   可以传输2的17次方减1种字符

关于utf8mb4

utf8mb4是MySQL / MariaDB中的一种字符集。

在当前主流版本的MySQL / MariaDB中,使用utf8作为字符集时,默认表示的是utf8mb3

关于utf8mb3utf8mb4,其主要区别在于:most bytes 3most bytes 4,即最多使用3 / 4个字节来表示1个字符!所以,当使用utf8mb4时,可以表示更多字符,例如生僻汉字、冷门符号、emoji表情符号等。

在使用MySQL / MariaDB时,所有SQL语句中涉及的字符集都明确的使用utf8mb4,而不要使用utf8

总结

提示:这里对文章进行总结:

搞清楚了ASCII、Unicode和UTF-8的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值