UTF16和UTF8啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UTF16和UTF8啥区别?相关的知识,希望对你有一定的参考价值。
还有GBK
非常感谢。
1、在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。这种方式的最大好处,是UTF-8保留了ASCII字符的编码做为它的一部分。UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。
对于英文字符较多的论坛则用UTF-8 节省空间。另外,如果是外国人访问你的GBK网页,需要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问。
2、UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数。
3、GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。
扩展资料:
网页编写用那种好,如果你主要做中文程序的开发,客户也主要是中国人的话就用GBK吧,因为UTF-8编码的中文使用了三个字节,用GBK节省了空间。如果做英文网站开发,还是用utf-8吧,因为utf-8中英文只占一个字节。GBK中英文也是两个字节的,并且国外客户访问GBK要下载语言包。
参考资料:百度百科-GBK字库
百度百科-UTF-16
UTF16和UTF8与GBK有以下4种区别:
1、制定机构区别
UTF8/UTF16是国际编码,又称万国码,而GBK是国家编码,即中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订
2、占用内存区别
GBK比UTF8、UTF16占用的数据库小。
3、编码单位区别
UTF8 顾名思义,是一套以8位为一个编码单位的可变长编码;而UTF16就是16位。
4.UTF-16是Unicode的其中一个使用方式。 UTF是 Unicode TransferFormat,即把Unicode转做某种格式的意思。
如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节。而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。
GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
扩展资料:
使用建议
1、UTF8版本虽然具有良好的国际兼容性,但中文需要比GBK版本多占用50%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。
2、但如果是做英文网站开发,还是用utf-吧,因为utf8中英文只占一个字节。GBK中英文也是两个字节的,并且国外客户访问GBK要下载语言包。
3、如果您的网站客户群体主要是面向国内用户的,建议使用GBK版本,因为它可以节省空间,及相对utf8版本来讲稳定一些。
参考资料来源:百度百科-utf-8
百度百科-GBK
参考技术B1、制定机构区别
GBK是国家编码,即中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订;而UTF8/UTF16是国际编码,又称万国码。
2、占用空间区别
UTF8、UTF16占用的数据库比GBK大。
3、编码单位区别
UTF8 顾名思义,是一套以8位为一个编码单位的可变长编码;而UTF16就是16位。
扩展资料:
使用建议
1、UTF8版本虽然具有良好的国际兼容性,但中文需要比GBK版本多占用50%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。
2、但如果是做英文网站开发,还是用utf-吧,因为utf8中英文只占一个字节。GBK中英文也是两个字节的,并且国外客户访问GBK要下载语言包。
3、如果您的网站客户群体主要是面向国内用户的,建议使用GBK版本,因为它可以节省空间,及相对utf8版本来讲稳定一些。
参考资料:百度百科:UTF8
百度百科:GBK
参考技术C | UTF-8编码规则较简单,如果只有1个字节,那最高比特位为0,如果有多个字节,那么第1个字节从最高位开始,连续有几个比特位的值为1,剩下的字节均以10开头,具体表现形式为:
0xxxxxxx:单字节编码形式;
110xxxxx 10xxxxxx:双字节编码形式;
1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式;
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式。
优势在于没有字节序的概念,非常适用于字符串的网络数据传输,不需要考虑大小端问题,对于非英文网页,可以有效避免各种乱码问题。
| UTF-16
使用2个或4个字节进行存储,对于Unicode编号范围在0~FFFF之间的字符,UTF-16使用2个字节存储,不需要进行编码转换,跟UTF-32类似,对于Unicode编号范围在10000~10FFFF之间的字符,UTF-16使用4个字节存储。
优势在于常用字符都可以使用2个字节表示,所以在Windows操作系统上,特别适合使用wchar_t作为字符串的存储基类型,1个wchar_t表示1个字符,操作起来非常方便。 参考技术D Unicode的最初目标,是用1个16位的编码来为超过65000字符提供映射。但这还不够,它不能覆盖全部历史上的文字,也不能解决传输的问题(implantation head-ache's),尤其在那些基于网络的应用中。已有的软件必须做大量的工作来程序16位的数据。
因此,Unicode用一些基本的保留字符制定了三套编码方式。它们分别是UTF-8,UTF-16和UTF-32。正如名字所示,在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。这种方式的最大好处,是UTF-8保留了ASCII字符的编码做为它的一部分,例如,在UTF-8和ASCII中,“A”的编码都是0x41.
UTF-16和UTF-32分别是Unicode的16位和32位编码方式。考虑到最初的目的,通常说的Unicode就是指UTF-16。在讨论Unicode时,搞清楚哪种编码方式非常重要。
以上是关于UTF16和UTF8啥区别?的主要内容,如果未能解决你的问题,请参考以下文章