new String(bytes)
如果不指定编码形式,他将以缺省形式进行编码
如果你编译的环境设置的是缺省的,那就以你的操作系统的Local为准
所以你在中文的window下
new Sting(new String(b))
和 new String(new String(b),"GB2312")
是一样的
不信你可以到linux下试试

解决方案 »

  1.   

    可是“国”22269 是一个UNICODE编码的值啊。
    如果我输入一个“國”,(繁体“国”字)
    对于System.out.println(new String(b)); 出来的是正确的繁体国字。
    对于System.out.println(new String(b),"GB2312");则是乱码。 
    都说会按系统默认方式编码,可是默认方式下对于繁体字可以识别,
    指定了GB2312对于繁体字就不识别了。
    看来它并不是一直按系统默认方式编码。
    今天晚上试试在LINUX下会怎样。
      

  2.   

    默认的字符编码应该是GBK,你用System.out.prrintln(new String(b),"GBK")应该会输出"國"字。