我看到的java2培训教材上说java全部采用unicode.不必转换。

解决方案 »

  1.   

    java的字符确实是2各字节的unicode
    但是,byte数组可不能和string等价,需要转换,函数名我忘了
    也可以用一个byte数组生成一个string,string类有相应的构造函数
    好像是String str=new String(byte[],encoding);
      

  2.   

    String str=new String(byte[],"UTF-8"); 
      

  3.   

    java内部用的是unicode码,但windows用的是GB码,两者之间的转化工作由JVM完成,但你必须用适当的代码,比如,输入输出要用字符方式(Write,read系列),string的构造函数也很有讲究,具体可查参考书。([email protected])
      

  4.   

    robber(海盗)说得不对。我试过了。
    一个例子,字符串“a第”的unicode编码是“0x60 0x00 0x2c 0x78”,即java的字符串在内存中实际存放的是上面的二进制码。现在我有一个字节数组
    byte[] b={0x60,0x00,0x2c,0x78};
    String k=new String(b,"utf-8");
    得到的是字符串“, ‘x”,不是字符串“a第”即每个字节被认为是ascii码,不是每两个字节作为一个unicode码处理。
    谁能帮帮我??
      

  5.   

    那你试试下面的:
    String k=new String(b,"GB2312");
      

  6.   

    算了,我自己解决了。应该用
    String k=new String(b,"UnicodeLittleUned");//intel cpu
    或者
    String k=new String(b,"UnicodeBigUned");//sun cpu
    我在jdk的帮助中找到的。
    原来大家和我一样都不看jdk的文档的。
    分数本来无所谓,可是我实在不好意思给任何一个人。就放在这里吧。
    每人给一分,多谢大家参与。
    to yangzi:
    在简体中文操作系统中,缺省本地编码就是gb2312,不必显式说明。再说我都说了是unicode编码的字节数组,不是本地编码的字节数组。