各类编码

常见的和编码相关的几个关键词:编码

  • ASCII
  • Unicode
  • UTF-8,UTF-16,UTF-32
  • GBK
  • ISO
    下面开始一个一个的解释:

ASCII码

计算机中全部的信息都是以二进制的形式存在的.
早先美国人发明了计算机,为了用计算机表示他们美国人能够看懂的信息,就将26个英文字母以及一些经常使用字符用二进制代码表示.
二进制代码和对应的英语字符的关系被规定为ASCII码.
ASCII码一共规定了128个字符的编码. 这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的统一规定为0.
计算机每次读一个字节,解码出具体字符在屏幕上显示出来.code

ISO编码

欧洲人发现ASCII编码只能表示英语字符,法语\德语中还有不少符号是ASCII编码所不能表示的.
所以欧洲人本身又炮制出来一套编码ISO.
ISO编码把ASCII码中字节的最高位也用掉了.
跟ASCII编码同样,计算机每次也只读一个字节,解码具体字符.乱码

GBK编码

跟美国人和欧洲人同样,中国人也想用计算机表示咱们中国人本身的文字信息.
因而GBK编码油然而生. 因为汉字的数量比较大,一个字节8位是表示不够用的,因此计算机在处理GBK编码的时候分两步:
1.第一位是0,按照ASCII编码来读入一个字节
2.第一位是1,读入两个字节二进制

固然还有日本的shift _JIS编码,韩国的Euc-kr编码.各国有各国字节的编码方式.这样的话,就会出现问题:
若是一篇文章中有好几个国家的语言显示.这篇文章就会乱码,没法阅读. 为了解决这个问题,Unicode编码诞生了.英文

Unicode编码

Unicode的诞生相似于"秦灭六国,统一货币".固然,Unicode并无把其余编码给消灭掉,但它几乎收纳了世界上大部分的字符.
这些字符都有惟一的编码,这就解决了多国语言同一页面显示乱码的问题.
Unicode编码的编号从0到100多万(3个字节),每个区间对应一种语言的编码.计算机

Unicode编码虽然解决了乱码的问题,但同时又带来一个新的问题:空间浪费.
好比英语字母明明能够用一个字节来表示,Unicode中却要用3个字节,这是对空间的严重浪费.
为了解决空间浪费的问题,UTF编码就诞生了.语言

UTF-8,UTF-16-UTF-32

UTF仅仅是编码的解决方案,并非一种新的编码方式.
Unicode只是一个符号集,它规定了符号的二进制代码,可是没有规定这些二进制代码应该如何存储.
因此UTF-8仅仅是Unicode编码的一种具体实现形式.
UTF-8采用变长的编码方式,能够用1~4个字节表示一个符号,根据不一样的符号而变化字节长度.
因此,UTF-8是节省空间的.
在英文字符比较多的内容中,采用UTF-8编码比较节省空间,
在中文字符比较多的内容中,采用UTF-16比较节省空间,由于汉字至少须要两个字节来表示.英语

相关文章
相关标签/搜索