Java字符集(一)

      UNICODE,GBKBIG5就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是不兼容的,同一个汉字,那三个码值是完全不一样的.  在GBK中,英文是占用1个字节,中文是2个; 对于Unicode,英文中文都是2个; 对于UTF-8,英文是1个,中文是3个(UTF-8 使用一至四个字节为每个字符编码。128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节,其他基本多文种平面(BMP)中的字符(当然包括CJK)使用三个字节,其他 Unicode 辅助平面的字符使用四字节编码);

    例如"你"的UNICODE为604F,gbk为C4E3, UTF-8是E4BDA0

  而uft-8,uft-16之类码,就是把那个值表现的形式.utf-8码完全只针对UNICODE来组织的,如果GBK要转utf-8必须先转UNICODE码,再转utf-8就OK了。

    Unicode是为整合全世界的所有语言文字而诞生的,是由国际组织设计,Unicode的学名是"Universal Multiple-Octet Coded Character Set"。任何文字在Unicode中都对应一个值,这个值称为代码点(code point)。Unicode只规定了代码点与文字的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTF(Unicode Transformation Format),其中应用较多的就是UTF-16和UTF-8了.Java机器存储字符采用的就是utf-16编码,而不是unicode,只是恰巧相同而已.

posted @ 2008-12-26 17:53  Christmas  阅读(232)  评论(0编辑  收藏  举报