可以实施,现转换成iso-8859-1,然后在转换成GBK,
不过一般不会出现你这样的问题,要不写一个比较严谨的方式
public static String charConvert(String strSource){
            if (strSource == null){
                return "";
            }
            else{
                try{
                  //return new String(strSource.getBytes("GB2312"), "ISO-8859-1");
                  String str = new String(strSource.getBytes("utf-8"), "GBK");
                  System.out.println(str);
                  return str;
                }
                catch (Exception ex){
                  System.out.println(ex.toString());
                  return "";
                }
            }
        }

解决方案 »

  1.   

    先转换成ISO-8859-1再转GBK我也试过了,还是不行啊,我连UNICODE都试了,UTF-8是不是有什么特别的地方?比如说它是6字节的,这会影响转换吗?
      

  2.   

    我在CSDN上搜索了一下UTF-8,好象很多人与我遇到一样的问题至今仍未解决。
      

  3.   

    正解,记着给分哦DataInputStream dis = new DataInputStream(...)
    String s = dis.readUTF();
      

  4.   

    netkid(酸菜鱼)你的方法好象是如何获得UTF的字串,而非将UTF转换成GBK吧
      

  5.   

    经过上面的操作后你就从utf得到了正常的java字符串了,然后再转一下(或者不转,如果编码为utf之前就是gbk)就可以了,不能直接从utf转为gbk的normal java string ---> utf string ----> normal java string --> desired encoding string
      

  6.   

    DataInputStream tempIN = new DataInputStream(
            new ByteArrayInputStream(tempString.getBytes("utf-8")));
    String temp11 = DataInputStream.readUTF(tempIN);
    抛出java.io.EOFException,何解