常见编码格式UTF-8 GBK GB2312 ASCII Unicode 的区别

ASCII码

标准ASCII码的长度为1个字节,指定一个字节的低7位来表示128种可能的字符。

包括所有的大写和小写字母,数字0 到9、标点符号等,如大写字母A的编码是65,小写字母z的编码是122。

GB2312

标准的ASCII码只有1个字节,显然无法对中文进行编码,对此,1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。

GB2312是对ASCII码的一个拓展,当存储英文字符时,使用一个字节存储,其大小为0~127。当存储中文字符时,使用两个字节存储,高低位都存放大于127的数字。

当读取高位字节时,若大于127,则认为是中文字符,将读取双字节进行识别,若小于127,则认为是英文字符,单字节识别。另外,GB2313在大于127位的编码库也提供了中文符号的编码,故英文标点符号称做半角符号,中文标点符号称作全角符号。

GBK

1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

Unicode

GB2312和GBK虽然解决了中文编码问题,但全世界有上百种语言,各国有各国的标准,就会不可避免地出现冲突。Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

通常情况下,Unicode长度为2个字节,对于生僻字其用4个字节来表示,它将ASCII的长度由8位扩展为16位。

目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8,UTF-16,UTF-32都是将数字转换到程序数据的编码方案。

UTF-8

UTF-8是Unicode的实现方式之一,它对不同范围的字符使用不同长度的编码。

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值