不同字符编码区别:ASCII ,ISO8859-1,GB2312,GBK,Unicode,UTF-8

首先,先科普一下什么是字符编码。字符是指一种语言中使用的基本实体,比如英文中的26个英文字母,标点符号,以及中文中的一个个汉字,都可以算做一个字符。我们在计算机屏幕上看到的这些字符,在计算机存储介质中存放的实际是二进制的比特流(…0101…)。

​ 那么在这两者之间的转换就需要一个统一的标准,否则就会出现乱码(mojibake)。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符编码就是规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。

  • ASCII:计算机最初是由美国等国家发明的,所以最初的字符编码规范是以英文为基础。录入英文字符编码标准:ASCII(American Stardard Code for Information InterChange 美国信息互换标准代码),单字节编码,使用单字节8位 前127个存储英文字母及标点符号。

  • ISO8859-1 / Latin-1 :ISO(国际标准化组织)在ASCII基础上做的扩展,向下兼容ASCII,也是单字节编码,是许多欧洲国家使用的编码标准。

  • GB2312 :随着发展,各国都需要使用各国的语言使用计算机,相应的,我国大陆地区采用双字节 高低位字节的方式,存储简体中文。当存储中文字符时,高低位都存放大于127的数字,当读取高位字节时,若大于127,则认为是中文字符,将读取双字节进行识别,若小于127,则认为是英文字符,单字节识别。另外,GB2312在大于127位的编码库也提供了中文符号的编码,故英文标点符号称做半角符号,中文标点符号称作全角符号。

  • GBK :对GB2312的拓展,双字节编码,区别是当存储中文字符时,高位存放大于127的数字,低位不再是大于127的数字,将127之前的数字也囊括了。GBK将繁体中文也囊括进来。

  • Unicode :针对各个国家都使用不同的编码机制,iso(国际标准化组织)又站了出来,对全球编码做了整个的囊括,推出了Unicode ,但其字符集也是最复杂、占用空间最大的。
    Unicode,定长双字节编码,对ASCII采取高位补零的方式拓展,不兼容iso8859-1编码。
    说明: 定长编码便于计算机处理(GB2312/GBK不是定长编码),而unicode又可以用来表示所有字符,所以在很多软件内部是使用unicode编码来处理的,比如java。

  • UTF-8 :由于Unicode是一组编码映射,即一个字符映射一个16进制数字的形式。随着互联网发展,unicode不便于传输和存储,为了节省资源(无论是硬盘存储还是流量),相应的就产生了utf-8编码。
    UTF-8兼容ISO8859-1编码,同时也可以用来表示所有语言,不过UTF-8编码是不定长编码,一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节,比 unicode编码节省空间。

    参考连接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值