Unicode 和 UTF-8 详解

结论

Unicode 是 字符集
UTF-8 是 编码规则

字符集:为每一个字符分配唯一的ID(如 SCII 码)
编码规则:将 码位转换为字节序列的规则

背景

在这里插入图片描述

老规矩,我们用图文并茂的方式来讲解:
ASCII 这个字符集 由于仅能表示 英文字符,为了能够涵盖更过国家的字符,因此联合推出了 Unicode 这个字符集。
这里明确了 Unicode 是一个字符集的概念,那么继续解释:
既然有了全球统一的字符集,那当然就要有对应的编码规则,最早的编码规则为 UTF-32:
UTF-32 的规则虽然简单,但是缺陷也很明显,假设使用 UTF-32 和 ASCII 分别对一个只有西文字母的文档编码,前者需要花费的空间是后者的四倍(ASCII 每个字符只需要一个字节存储)。
在存储和网络传输中,通常使用更为节省空间的变长编码方式 UTF-8,UTF-8 代表 8 位一组表示 Unicode 字符的格式,使用 1 - 4 个字节来表示字符。这里需要注意的是 UTF-8 不像是 UTF-32那样 一成不变,如果是英文字符,则用一个字节表示,如果是中文字符,则用三个字节表示。

规则

单个字节的字符,字节的第一位为0,(如英文字符,在UTF-8中只占用一个字符)
n个字节的字符(n>1),第一个字节的前 n 位设为1,第 n+1 位设为 0 ,后面字节的前两位都设为 10,其余字节填充该Unicode码
UTF-8为了节省资源,采用变长编码,编码长度从1个字节到6个字节不等,一共有如下情况:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值