GBK及UTF-8编码的区别
来源:互联网 发布:淘宝蓝海龙腾黑不黑 编辑:程序博客网 时间:2024/04/27 17:35
GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大。
UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。
UTF-8版本虽然具有良好的国际兼容性,但中文需要比GBK/BIG5版本多占用50%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。简单地说:对于中文较多的网站,适宜用GBK编码节省数据库空间。对于英文较多的网站,适宜用UTF-8节省数据库空间。
GBK、GB2312等与UTF8如何转换?GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:GBK、GB2312——Unicode——UTF8;UTF8——Unicode——GBK、GB2312。使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。
问题:GBK和UTF8之间的转换需要先转成Unicode?
答案:因为GBK和Unicode是字符集,而UTF8是基于Unicode的一种编码方式(还有UTF16/UTF32等)。所以GBK和UTF8之间的转换,实际上是字符集之间的转换。
UTF8编码规则:
1. 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx1. 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
2. n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
这样就形成了如下的UTF-8标记位:
0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
- GBK及UTF-8编码的区别
- GB2312、GBK、UTF-8编码的区别
- utf-8 和gbk编码的区别
- UTF-8、GBK编码的区别
- UTF-8 和 GBK 编码的区别
- GBK编码和UTF-8编码的区别
- [编码]GBK和UTF-8的区别
- 网页编码gbk与utf-8的区别与联系
- UNICODE,GBK,UTF-8:编码格式的区别
- 字符编码GB2312、GBK、UTF-8的区别
- UNICODE,GBK,UTF-8:编码格式的区别
- utf-8,unicode,gbk编码的来源和区别
- 编码方式GBK、GB2312、UTF-8的区别
- utf-8、unicode、gbk、gb2312、ANSI编码的区别
- 字符编码GB2312、GBK、UTF-8的区别
- 编码UNICODE,GBK,UTF-8区别
- utf-8 和gbk 编码区别
- 字符编码 GB2312 GBK UTF-8 区别
- java中静态方法和静态变量详解
- ListView列表优化
- 省市级联小例子
- lesson3 线程控制
- HTML5能为我们带来什么?(二)
- GBK及UTF-8编码的区别
- 蓝桥杯算法训练 图形显示
- @property中的关键字
- BZOJ3668: [Noi2014]起床困难综合症
- 漫步数学分析番外三
- Python内置函数
- 打印数字菱形
- 利用Redis 实现消息队列
- 摆脱百度云大文件下载限制,IDM来帮忙