表达有点绕,直接上代码吧!
-Dfile.encoding=GBKString s = "我们!";
System.out.print(s);
控制台(应该是GBK编码) 上输出 "我们!"     这个没问题,我就是这想要的结果,
可是还有别的程序,-Dfile.encoding不能设置为GBK,他只能设置为UTF8,-Dfile.encoding=UTF8String s = "我们!";
System.out.print(s);
我怎样才能在控制台下到正确的输出,控制台的编码也是固定的!我试过UTF8转GBK  GBK转UTF8 都没有得到正确的结果

解决方案 »

  1.   

    -Dfile.encoding=UTF-8 String s = "我们!"; 
    System.out.print(s);
      

  2.   

    1楼所说的会输出 : 鎴戜滑!
    正确结果应该是:我们!
    控制台编码是GBK
      

  3.   


    你用gbk转utf-8是不行的。看下面的怎样
    String s="我们";
    System.out.println(new String(s.getBytes("utf-8"),"utf-8"));
      

  4.   

    这样会输出 : 鎴戜滑!newString(s.getBytes("utf-8"),"utf-8") 这样字符串不会有改变的吧!看来是只能把file.encoding也成GBK了,实在不想这么做,这样会影响以前的程序.
    伤心ing ...
      

  5.   

    全部设置成UTF-8,应该没问题啊,我用的环境编码全部是UTF-8,都是正常的显示中文
      

  6.   

    答:楼主不要伤心啊。我是刚看到你的贴子啊。你的要求是:控制台编码固定是GBK,而程序可随时用:-Dfile.encoding=UTF-8或其它编码,现要求:无论file.encoding是何编码,在控制台上均能正确输出汉字。这很简单啊每当向控制台输出串时,强制按GBK输出就行了。用你的代码说话:
    -Dfile.encoding=UTF-8 String s = "我们!"; 
    System.out.write(s.getBytes("GBK"));//强制按GBK编码向控制台输出串
      

  7.   

    中文系统的内码就是GBK,你要想在控制台中显示中文,不管你怎么绕,也要绕到GBK编码上来。