JAVA 字符编码系列一: Unicode,GBK,GB2312,UTF-8 概念基础收藏这两天抽时间又总结/ 整理了一下各种编码的实际编码方式, 和在 Java 应用中的使用情况, 在这里记录下来以便日后参考。为了构成一个完整的对文字编码的认识和深入把握,以便处理在 Java 开发过程中遇到的各种问题, 特别是乱码问题,我觉得组成一个系列来描述和分析更好一些,包括三篇文章: 第一篇: JAVA 字符编码系列一: Unicode,GBK,GB2312,UTF-8 概念基础第二篇: JAVA 字符编码系列二: Unicode,ISO-8859,GBK,UTF-8 编码及相互转换第三篇: JAVA 字符编码系列三: Java 应用中的编码问题第一篇: JAVA 字符编码系列一: Unicode,GBK,GB2312,UTF-8 概念基础本部分采用重用,转载一篇文章来完成这部分的目标。来源: holen'blog 对字符编码与 Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312 的理解地址: http://blog./holen/archive/2004/11/30/ Unicode: 制定的编码机制, 要将全世界常用文字都函括进去. 在 中是 16 位编码,由 U+0000 到 U+FFFF. 每个 2byte 码对应一个字符;在 开始抛弃了 16位限制, 原来的 16 位作为基本位平面, 另外增加了 16 个位平面, 相当于 20 位编码, 编码范围 0到 0x10FFFF. UCS: ISO 制定的 ISO10646 标准所定义的 Universal Character Set, 采用 4byte 编码. Unicode 与 UCS 的关系: ISO与 g 是两个不同的组织, 因此最初制定了不同的标准; 但自从 unicode2. 0 开始, unicod e 采用了与 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, 16bi t 编码, 是变长码, 大致相当于20 位编码,值在0到 0x10FFF F 之间, 基本上就是 unicod e 编码的实现. 它是变长码,与 CPU 字序有关, 但因为最省空间, 常作为网络传输的外码. UTF-16 是 unicode 的 preferred encoding. UTF-32, 仅使用了 unicode 范围(0到 0x10F
JAVA字符编码系列一 来自淘豆网m.daumloan.com转载请标明出处.