System.out.println(Integer.toHexString('回'));  //char用的是unicode编码, 不是0xBBD8

解决方案 »

  1.   


    public class Input{
    public static void main(String args[])throws Exception{
    byte[] k={-69,-40};;

                      String str1=new String(k,"gb2312");
    System.out.println(str1);
    }
    }
    我测试过,输出就是"回"字
      

  2.   

    应该是char c = (char) (k+(l<<8));的问题,好像转化的不是ASCII码,因为直接打印可以打印出“回”,所以不应该是识别不出来~~
      

  3.   

    System.out.println((char)22238);
    打出来的才是回!
    回的unicode码是22238!
    java里面用的是unicode,
    BBD8显示是不是unicode,而是GBK或GB2312之类的编码!
      

  4.   


    public class Input{
    public static void main(String args[])throws Exception{
    byte[] k={-69,-40};;

                       String str1=new String(k,"gb2312");

    System.out.println(str1);
    }
    }
    你试试,我测试过,输出就是回字
      

  5.   

    byte[] k={-69,-40};多了一个";"
    to mqqqvpppm(机纽特种部队)
    我真的测试过,我系统的我将系统的默认编码改为了gb2312,输出的明明是"回"字.
      

  6.   

    public class Input{
    public static void main(String args[])throws Exception{
    byte[] k={-69,-40};;

                       String str1=new String(k,"gb2312");

    System.out.println(str1);
    }
    }
    你试试,我测试过,输出就是回字???
    我的怎么不行啊?
      

  7.   

    我不仅测试过回字,一下还有:
    k={-59,-80}  输出"虐"
    k={-29,-80}  输出"惆"
    k={-29,-50}  输出'阄"
    等等.
      

  8.   

    public class hanzi 
    {
    public static void main(String [] args)
    {

    byte[] b={-69,-40};
    String s =new String(b);
    System.out.println(s); }
    }
      

  9.   

    英文字符一般是以一个字节来表示的,最常用的编码方法是 ASCII 。但一个字节最多只能区分256个字符,而汉字成千上万,所以现在都以双字节来表示汉字,为了能够与英文字符分开,每个字节的最高位一定为1,这样双字节最多可以表示64K格字符。
    字符第一位为1,意味着这个字符一个负值。
    这样楼主该明白了吧。
      

  10.   

    一个汉字是由2个字节组成,而且组成汉字的每个字节的ASCII码的第一位都是“1”
    即转换成数字的话都是负数!
    你可以采用我的方法!进行强制转换!
    将byte型转换成String就行了!
      

  11.   

    一般不需要写算法去解释。
    如果涉及这方面的程序,就要先去了解怎样编码的,例如gb2312,编码的方法。这个不是移位能解决的。
    1011101111011000应该是"回"字的unicode编码。用gb2312就能解出是“回”,如果你机器的语言版本不是中文的,可能就会出乱码。
      

  12.   

    java用的是unicode编码方式,不是ASCII码
      

  13.   

    char是unicode编码,一个字符对应一个32位整数,所以你的程序是不对的
    char hui[] = { "\ubbd8" };