String str=new String(str.getBytes("GBK"),"UTF-8");

解决方案 »

  1.   

    不行啊,
    我是在serverlt中创建一个ZIP文件,然后用BufferedOutputStream输出到客户端让他下载
     response.setContentType("application/zip");
        response.setHeader("Content-disposition","attachment; filename="+"expertdoc.zip" );
     
        /**
        这里创建一个ZIP文件,但在客户端得到ZIP文件中各压缩文件的文件名是乱码
       **/    FileInputStream fis = new FileInputStream(path+userId+".zip");
        ServletOutputStream out = response.getOutputStream ();
        BufferedOutputStream bos = new BufferedOutputStream(out);    int iRead;
        byte[] bRead = new byte[1024];
        while((iRead = fis.read(bRead)) != -1){
            bos.write(bRead,0,iRead);
        }
       fis.close();
       bos.close();编码我试用了好多
    1.  tempDocId = new String((D.getDOCID()+".ceb").getBytes(),"UTF-8");
    2。 tempDocId = new String((D.getDOCID()+".ceb").getBytes("ISO8859-1"),"UTF-8");
    3.  tempDocId = new String((D.getDOCID()+".ceb").getBytes("gb2312"),"UTF-8");
    4.  tempDocId = new String((D.getDOCID()+".ceb").getBytes("GBK"),"UTF-8");都不行啊,