ASCII,Unicode,UTF-8三者区别和关系分析

ASCII,Unicode和UTF-8均为计算机系统中对字符的编码方式,现在对三者的区别和关系进行分析:

ASCII:

ASCII 码由美国制定,使用指定的 7 位或 8 位二进制数(单字节)组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。

例如:在ASCII码当中,01000001这个8位二进制数(也就是十进制65)表示字符‘A’,所以当我们输入A时,计算机就可以通过ASCII码知道输入的字符的二进制编码为01000001。

但是正因为是美国制定,所以ASCII满足的就是美国需要(例如英语字母符号和其中的特殊字符),其他国家的字母符号文字就不在其中,例如汉字,因为汉字在计算机编码当中至少需要2个字节才能表示。

Unicode:

为了实现一种统一化的字符编码方式,满足世界大部分国家需求,所以推出了Unicode编码。

Unicode,官方中文名称为统一码是计算机科学领域的业界标准。它整理、编码了世界上大部分的文字系统,使得电脑可以用更为简单的方式来呈现和处理文字。(来源于维基百科)

对于Unicode,采用的是两个字节(16位二进制)来表示字符,这样能基本满足各种国家语言字符的需求。例如:在Unicode当中,字符‘A’的表示便成为了00000000 01000001,就是在ASCII中在高位加8个0。

所以如果你有一个全英文写作的文本,对比ASCII,用Unicode来编码就会对内存造成很大的浪费。

UTF-8:

为了节约内存,同时进一步统一,推出了UTF-8。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度的字符编码方式。它可以用一至四个字节对Unicode字符集中的所有有效编码点进行编码。

一般而言,值较小的编码字符,使用频率较高,直接使用Unicode编码效率低下,大量浪费内存空间。所以在UTF-8当中,对于用8位二进制数编码的ASCII字符,我们在UTF-8中直接照搬,所以一个纯ASCII字符串也是一个合法的UTF-8字符串,现存的ASCII文本不需要转换。我们也可以把ASCII看作为UTF-8的一个子集,这样的话,传统的扩展ASCII字符集设计的软件通常可以不经修改或很少修改,就能与UTF-8一起使用。

因为UTF-8能减少内存浪费,同时尽可能实现统一,它逐渐成为电子邮件、网页及其他存储或发送文字优先采用的编码方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值