常见编码格式UTF-8GBKGB2312ASCIIUnicode的区别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,则认为是英⽂字符,单字节识别。另
unicode编码转换二进制外,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码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。