常见编码GBK、GB2312、UTF-8、ISO-8859-1的区别
2016-03-16 20:38
369 查看
在项目开发中,会经常遇到不同的编码方式。不管什么编码,都是信息在计算机中的一种表现,理解常见的编码方式,有助于我们避免出现乱码等现象。
最初的计算机字符编码是通过ASCII来编码的,是现今最通用的单字节编码系统,使用7位二进制数来表示所有的字母、数字、标点符号及一些特殊控制字符,作为美国编码标准来使用。
ISO-8859-1编码是单字节编码,向下兼容ASCII,是许多欧洲国家使用的编码标准。其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
Unicode,学名是Universal Multiple-Octet Coded Character Set(简称UCF),与ISO-8859-1标准兼容。由国际组织标准制定,作为一种国际语言编码标准,支持超过十万个字符,涵盖世界数十种文字系统,是一种通用字符编码标准。很多技术,如Java编程语言、现代操作系统都采用了Unicode编码。
UTF-8/UTF-16等则是对Unicode进行了编码,是其一种实现方式。UTF-8(8-bit Unicode Transformation Format),是一种变长的编码方式,它以8位为码元,用1-6个码元对Unicode进行编码,对英文字符使用单字节编码,对中文编码用到三个字节来编码。UTF-16(16-bit Unicode Transformation Format)是用16位为码元,用1个或2个码元对Unicode进行编码。utf-16将字符集划分为基本多文中平面和辅助平面,基本多文中平面中的字符与Unicode是一致的,不需要转换;处在辅助平面中的码元(如一些拼音文字或者中日韩表意文字的扩充),需要2个码元进行编码。
GB2312是国家制定的汉字编码标准,使用双子节进行编码,共收入6763个汉字和682个非汉字图形字符。GBK即对国标编码的扩展,在GB2312的基础上进行扩展形成的,使用双子节编码方式,共收入21003个汉字,从而大大满足了汉字使用的需要。
总结
unicode是国际通用编码标准,可以表示全世界的字符,但其字符集也是最复杂、占用空间最大的。开发者可以根据需要进行选择编码方式。
最初的计算机字符编码是通过ASCII来编码的,是现今最通用的单字节编码系统,使用7位二进制数来表示所有的字母、数字、标点符号及一些特殊控制字符,作为美国编码标准来使用。
ISO-8859-1编码是单字节编码,向下兼容ASCII,是许多欧洲国家使用的编码标准。其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
Unicode,学名是Universal Multiple-Octet Coded Character Set(简称UCF),与ISO-8859-1标准兼容。由国际组织标准制定,作为一种国际语言编码标准,支持超过十万个字符,涵盖世界数十种文字系统,是一种通用字符编码标准。很多技术,如Java编程语言、现代操作系统都采用了Unicode编码。
UTF-8/UTF-16等则是对Unicode进行了编码,是其一种实现方式。UTF-8(8-bit Unicode Transformation Format),是一种变长的编码方式,它以8位为码元,用1-6个码元对Unicode进行编码,对英文字符使用单字节编码,对中文编码用到三个字节来编码。UTF-16(16-bit Unicode Transformation Format)是用16位为码元,用1个或2个码元对Unicode进行编码。utf-16将字符集划分为基本多文中平面和辅助平面,基本多文中平面中的字符与Unicode是一致的,不需要转换;处在辅助平面中的码元(如一些拼音文字或者中日韩表意文字的扩充),需要2个码元进行编码。
GB2312是国家制定的汉字编码标准,使用双子节进行编码,共收入6763个汉字和682个非汉字图形字符。GBK即对国标编码的扩展,在GB2312的基础上进行扩展形成的,使用双子节编码方式,共收入21003个汉字,从而大大满足了汉字使用的需要。
总结
unicode是国际通用编码标准,可以表示全世界的字符,但其字符集也是最复杂、占用空间最大的。开发者可以根据需要进行选择编码方式。
相关文章推荐
- ASP编码必备的8条原则
- XML指南——XML编码
- C#中字符串编码处理
- ExtJS中文乱码之GBK格式编码解决方案及代码
- 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)
- 程序员趣味读物 谈谈Unicode编码
- 文本文件编码方式区别
- C语言安全编码之数值中的sizeof操作符
- C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)
- 常用字符集编码详解(ASCII GB2312 GBK GB18030 unicode UTF-8)
- VC中BASE64编码和解码使用详解
- 计算机中的字符串编码、乱码、BOM等问题详解
- UTF-8、Unicode 标准化表单、BOM
- Base64编码解码原理及C#编程实例
- C#编码好习惯小结
- ASP UTF-8页面乱码+GB2312转UTF-8 +生成UTF-8格式的文件(编码)第1/2页
- javascript编码的几个方法详细介绍
- ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
- php中json_encode UTF-8中文乱码的更好解决方法
- UTF8编码开发中页面空白问题的解决方法