GBK和UTF-8⽂字编码有什么区别?GBK有什么好处?GBK和UTF-8⽂字编码有什么区别?GBK有什么好处?
时间:2017-01-09 来源:系统之家 作者:quers
UTF-8是⼀种国际化标准的⽂字编码,我们已知Windows系统程序已经将最初的UTF-8转向Unicode,⽽GBK的存在是为了中国国情⽽创造的,不过GBK也将伴随着中⽂字符的⼀直流传下去。
GBK和UTF-8⽂字编码的特点:
GBK的⽂字编码是双字节来表⽰的,即不论中、英⽂字符均使⽤双字节来表⽰,只不过为区分中⽂,将其最⾼位都定成1。
⾄于UTF-8编码则是⽤以解决国际上字符的⼀种多字节编码,它对英⽂使⽤8位(即⼀个字节),中⽂使⽤24位(三个字节)来编码。对于英⽂字符较多的论坛则⽤UTF-8节省空间。
GBK和UTF-8⽂字编码的区别:
GBK包含全部中⽂字符;中文字符unicode查询
UTF-8则包含全世界所有国家需要⽤到的字符。
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准;(好像还不是国家标准)
UTF-8编码的⽂字可以在各国各种⽀持UTF8字符集的浏览器上显⽰。
⽐如,如果是UTF8编码,则在外国⼈的英⽂IE上也能显⽰中⽂,⽽⽆需他们下载IE的中⽂语⾔⽀持包。
所以,对于英⽂⽐较多的论坛 ,使⽤GBK则每个字符占⽤2个字节,⽽使⽤UTF-8英⽂却只占⼀个字节。
注意:
UTF-8版本虽然具有良好的国际兼容性,但中⽂需要⽐GBK/BIG5版本多占⽤50%的数据库存储空间,因此并⾮推荐使⽤,仅供对国际兼容性有特殊要求的⽤户使⽤。
总结:
GBK就是在保存你的帖⼦的时候,⼀个汉字占⽤两个字节。外国⼈看会出现乱码,此为我中华为⾃⼰汉字编码⽽形成之解决⽅案。
UTF8就是在保存你的帖⼦的时候,⼀个汉字占⽤3个字节。但是外国⼈看的话不会乱码,此为西⼈为了解决多字节字符⽽形成之解决⽅案。
ASCII(ISO-8859-1)是⿐祖,最简单的⽅式,字节⾼位为0。
GB2312、GBK、GB18030,这⼏个是中⽂编码⽅式,并向下兼容。GB2312包含7000多个汉字和字符,GBK包含21000多
个,GB18030更厉害,到了27000多个。他们都是⽤2个字节来表⽰⼀个汉字。跟ascii是怎么区分的呢?如果⾼字节的⾼位为1(也就是⾼字节⼤于127),就表⽰是汉字,低字节并⽆明显特征。
Unicode是统⼀编码,它建⽴了⼀个全世界统⼀的码表。世界上的所有⽂字,在这张码表中都是唯⼀的。
UTF-8是Unicode的⼀种存储、传输⽅式。它将整个Unicode码表分为3部分。
0000 - 007F 这部分是最初的ascii部分,按原始的存储⽅式,即0xxxxxxx。
0080 - 07FF 这部分存储为110xxxxx 10xxxxxx。
0800 - FFFF 这部分存储为1110xxxx 10xxxxxx 10xxxxxx。
因此,⼀个汉字究竟被存储为什么,就需要:先查unicode码表,然后根据在码表的位置进⾏计算。例如:“电”字,在码表中是3575,计算成utf8就是E794B5,⽽在GB2312的码表中为B5E7。
UTF-8的好处:兼容ASCII,存储英⽂⽂件都是单字节,⽂件⼩。当然,当以存中⽂为主时就变成了3字节编码了,⽐GB系列还⼤!如何标明⼀个⽂件是utf8格式呢?这个标记是可选的:EF BB BF。⽐如,⽤windows⾃带的记事本创建⼀个utf8格式的⽂件,就会加上这个标记。但是,如果⽤ultraedit创
建utf8⽂件,并不会加上这个标记。这个标记有个术语,叫做BOM(Byte Order Mark)。不带BOM的utf8⽂件和GB2312⽂件怎么区分呢?我也不知道。唯⼀能想到的办法就是:先⽤⼀种试,如果出现乱码,就⽤另⼀种再试。
简⾔⽽知,GBK编码⽅式的编码是以中国国情⽽创造的,在国际上的兼容性不好,这也是为什么⼤多数的⽹页是使⽤UTF-8编码⽽不是GBK。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论