情景是这样的:linux操作系统用组件从windos系统拿到一个字符串,传入java程序,这个字符串目前的编码格式是:String present = new String("windows字符串".getBytes("GBK"), "UTF8");我想还原出来,直接用java程序写方法,能做出来吗?该怎么做?

解决方案 »

  1.   

    http://www.docin.com/p-46462594.htmljava中有 setCharacter方法,是设置解码方式的,根据自己的设计就可以了
      

  2.   

    String present = new String("windows字符串".getBytes("UTF8"), "GBK");   这样可以吗?貌似想的有点简单了
      

  3.   

    这样是不行的:String str= "windows字符串";
    str= new String(str.getBytes("GBK"), "UTF8");
    System.out.println(str);
    str= new String(str.getBytes("UTF8"), "GBK");
    System.out.println(str);这样转码是不行的,得到的结果都是乱码。
    我的问题其实变相的表达就是:
    我现在拿到的一个字符串是个转码过的字符串,已发生的转码过程是
    String present = new String("windows字符串".getBytes("GBK"), "UTF8");
    我拿到的是present字符串,已经是乱码了,我想把它转回来,转成正常的,不知道是否能做,如何做。