private static void structedChineseCharacter()throws UnsupportedEncodingException{
         byte[] b={(byte)0xb0,(byte)0xa1};
String gb=new String(b,"gb2312");
System.out.println (gb);
b=gb.getBytes();
System.out.println ("unicode的编码是: ");
for (int i = 0; i<b.length; i++){
System.out.print ("0x"+Integer.toHexString(b[i])+"\t");
}
}
打印出来结果是:

unicode的编码是:
0xffffffb0      0xffffffa1      Press any key to continue...
怎么长出来了那么多的f啊,
一个字节不可能有那么大的编码啊.
高手,给我说说些其中的原因吧.

解决方案 »

  1.   

    int 是4个字节32为,b0、a1 是byte,转成 int时,最高为扩展,所以,f特别多。
      

  2.   

    public static String ChineseToUnicode(String s) {
            String as ;
            String s1 = "";
            for(int i = 0; i < s.length(); i++) {
                as = Integer.toHexString(s.charAt(i) & 0xffff);
                s1 = s1 + "\\u" + as;
            }
            return s1;
        }