ascii码,unicode编码,utf-8编码

我理解的ascii码,unicode编码,utf-8编码;

1、ascii编码:

美国于上个世纪60年代制定了一套字符编码,英语字符与二进制位之间对应关系,做了统一规定。故此诞生了一直沿用至今的ASCII 码。

preview

2、unicode编码 

英语用128个符号编码就足够了,但是用来表示其他语言,128个符号是不够的。

此时,unicode编码出现了。

unicode是这样一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码(在0-127位,unicode与ascii表示的字符相同)。

但是unicode编码存在另一个问题,例如:

字符A的unicode码是\u0041,二进制标识为1000001,

中文“一”的unicode码是\u4E00,二进制表示为100111000000000,

此时保存A需要一个字节,八位bit,保存“一”需要两个字节,16位bit,如何保存能让计算机知道几位bit代表一个字符?此时,utf-8出现了

3、utf-8编码

utf-8编码解决的就是计算机中的字符保存的问题。

上述字符,“A”,“一”,如果都用两个字节表示,浪费资源,如果A用一个字节,“一”用两个字节,计算机无法字节识别(几位byte代表一个字符?)。

utf-8就是定义了一种计算机可以识别的用几位字节表示一个字符的方式。

utf-8定义:

        1)对于单字节的符号,且第一位为0,后面7位为 Unicode 码. 因此对于英语字母,UTF-8 编码和 ASCII 码是相同的
        2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

举例说明:

对于A来说,一个字节即可表示,那么他的utf-8的编码第一位是0,后7位是65,即01000001,

对于“一”来说,用utf-8编码需要3个字节,那么第一个字节中前三位都是1,第四位0,后天每个字节前两位都是10,可以表示的utf-8位数是1110XXXX 10XXXXXX 10XXXXXX,此时X共有16位,正好是unicode编码需要的位数,用unicode编码填充X即可。

所以,A的utf-8编码仍是65,“一”的utf-8编码是:11100100 10111000 10000000

综上所述,ascii和unicode是代表字符的数值编码,utf-8是将数值编码保存到计算机中的一种格式。

下图可方便理解

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值