会计考友 发表于 2012-8-4 12:44:44

Java认证:Java中编码以及Unicode总结(6)

8   例如我们有一个填补字符???(哈哈,你看到了三个问号对吧?因为我的系统显示不出这个字符),它在Unicode中的编号是U+2F81A,当在轨范中需要使用这个字符的时辰,就可以这样来写:
  String s=String.valueOf(Character.toChars(0×2F81A));
  char[]chars=s.toCharArray();
  for(char c:chars){
  System.out.format(”%x”,(short)c);
  }
  后面的for轮回把这个字符的UTF-16编码打印了出来,结不美观是d87edc1a注重到了吗?这个字符酿成了两个char型变量,其中0xd87e就是高代办代庖部门的值,0xdc1a就是低代办代庖的值。
  Unicode字符集编码(Universal Multiple-Octet Coded Character Set)通用多八位编码字符集的简称,撑出生避世界上跨越650种说话的国际字符集。Unicode是一种在计较机上使用的字符编码。它为每种说话中的每个字符设定了统一而且独一的二进制编码,以知足跨说话、跨平台进行文本转换、措置的要求。Unicode 尺度始终使用十六进制数字,而且在书写时在前面加上前缀“U+”,字母“A”的编码书写为“U+0041”。
  Unicode打算使用了17个平面,一共有 17*65536=1114112个码位。在Unicode 5.0.0版本中,已界说的码位只有238605个,分布在平面0、平面1、平面2、平面14、平面15、平面16。其中平面15和平面16上只是界说了两个各占65534个码位的专用区(Private Use Area),分袂是0xF0000-0xFFFFD和0×100000-0×10FFFD。所谓专用区,就是保留给巨匠放自界说字符的区域,可以简写为 PUA。平面0也有一个专用区:0xE000-0xF8FF,有6400个码位。平面0的 0xD800-0xDFFF,共2048个码位,是一个被称作代办代庖区(Surrogate)的非凡区域。代办代庖区的目的用两个UTF-16字符暗示BMP以外的字符。在介绍UTF-16编码时会介绍。如前所述在Unicode 5.0.0版本中,238605-65534*2-6400-2408=99089。余下的99089个已界说码位分布在平面0、平面1、平面2和平面 14上,它们对应着Unicode今朝界说的99089个字符,其中搜罗71226个汉字。平面0、平面1、平面2和平面14上分袂界说了52080、 3419、43253和337个字符。平面2的43253个字符都是汉字。平面0上界说了27973个汉字。
页: [1]
查看完整版本: Java认证:Java中编码以及Unicode总结(6)