`

字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312

阅读更多

字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312

Unicode:
unicode.org制定的编码机制, 要将全世界常用文字都函括进去.
在1.0中是16位编码, 由U+0000到U+FFFF. 每个2byte码对应一个字符; 在2.0开始抛弃了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面, 相当于20位编码, 编码范围0到0x10FFFF.
UCS:
ISO制定的ISO10646标准所定义的 Universal Character Set, 采用4byte编码.
Unicode与UCS的关系:
ISO与unicode.org是两个不同的组织, 因此最初制定了不同的标准; 但自从unicode2.0开始, unicode采用了与ISO 10646-1相同的字库和字码, ISO也承诺ISO10646将不会给超出0x10FFFF的UCS-4编码赋值, 使得两者保持一致.
UCS的编码方式:

  • UCS-2, 与unicode的2byte编码基本一样.
  • UCS-4, 4byte编码, 目前是在UCS-2前加上2个全零的byte.
    UTF: Unicode/UCS Transformation Format
  • UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:
    * 与CPU字节顺序无关, 可以在不同平台之间交流
    * 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码)
  • UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.
    UTF-16是unicode的preferred encoding.
  • UTF-32, 仅使用了unicode范围(0到0x10FFFF)的32位编码, 相当于UCS-4的子集.
    UTF与unicode的关系:
    Unicode是一个字符集, 可以看作为内码.
    而UTF是一种编码方式, 它的出现是因为unicode不适宜在某些场合直接传输和处理. UTF-16直接就是unicode编码, 没有变换, 但它包含了0x00在编码内, 头256字节码的第一个byte都是0x00, 在操作系统(C语言)中有特殊意义, 会引起问题. 采用UTF-8编码对unicode的直接编码作些变换可以避免这问题, 并带来一些优点.
    中国国标编码:
  • GB 13000: 完全等同于ISO 10646-1/Unicode 2.1, 今后也将随ISO 10646/Unicode的标准更改而同步更改.
  • GBK: 对GB2312的扩充, 以容纳GB2312字符集范围以外的Unicode 2.1的统一汉字部分, 并且增加了部分unicode中没有的字符.
  • GB 18030-2000: 基于GB 13000, 作为Unicode 3.0的GBK扩展版本, 覆盖了所有unicode编码, 地位等同于UTF-8, UTF-16, 是一种unicode编码形式. 变长编码, 用单字节/双字节/4字节对字符编码. GB18030向下兼容GB2312/GBK.
    GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准.
  • 分享到:
    评论

    相关推荐

      超详细的字符编码教程

      2.4.3. Unicode字符编码所对应的存储和交换标准:UTF-8, UTF-16, UTF-32 2.4.3.1. UTF-8 2.4.3.2. Unicode与UTF-8之间的转换 2.4.3.2.1. 关于UTF-8的BOM:“EF BB BF” 2.5. 代码页Code Page 2.5.1. 什么是代码页...

      各种字符编码方式详解及由来

      一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们

      CharsetUtils.java

      * 字符编码工具类 , 主要方法:1)获取传入字符串的编码格式 2)根据新的编码格式生成新字符串 /** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */ US_ASCII("US-ASCII","位ASCII字符,也叫作ISO...

      全能字符编码转换工具

      最全,功能最强的编码转换工具,可以在gbk,gb23123,unicode,utf8,ucs,ansi....等等各种编码之间互换,是编码转换的最佳利器

      字符编码学习

      目前Unicode是采用16位编码体系,其字符集内容与 ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字...

      文件字符编码转换

      文字编码转换工具,可以转换文件或文件夹,支持GBK/GB2312 ,Unicode(USC-2),utf8之间的互转。

      编码转换类1.2版模块源码

      本模块支持GBK、UNICODE、UTF-8三种编码之间的互相转换,不依赖系统Api,通过查表和编码算法直接得出转码结果,支持多线程调用。编码小科普。GBK编码:1-2个字节,包含GB2312、ASCII、BIG5,注意:同一个繁体字在GBK...

      易语言-编码转换类1.2版模块

      本模块支持GBK、UNICODE、UTF-8三种编码之间的互相转换,不依赖系统Api,通过查表和编码算法直接得出转码结果,支持多线程调用。 编码小科普 GBK编码:1-2个字节,包含GB2312、ASCII、BIG5,注意:同一个繁体字在GBK...

      大话字符处理 总结

      一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go!

      [洫蜘蛛] 编码转换模块,不依赖系统Api-易语言

      本模块支持GBK、UNICODE、UTF-8三种编码之间的互相转换,不依赖系统Api,通过查表和编码算法直接得出转码结果,支持多线程调用。 ===========================================编码小科普==========================...

      php网络开发完全手册

      7.5 正则表达式与字符操作的综合应用 110 7.5.1 获得与模式匹配的数组单元—— 7.5.1 preg_grep 110 7.5.2 进行全局正则表达式的匹配—— 7.5.2 preg_match_all 111 7.5.3 进行正则表达式的匹配——preg_ 7.5.3 ...

    Global site tag (gtag.js) - Google Analytics