这是因为编码的问题,缺省的不能处理汉字。
我这有一个以前自己写的class,你可以把这个class文件替换掉你的rt.jar里的ZipInputStream。
简单的方法便是,用WinRar打开rt.jar然后进入到java.util.zip中,把这个新的DETZipInputStream.class拖到WinRar中,便完成了。在处理汉字的时候使用这个类进行zip解压缩就可以了。经过测试没有问题,能处理中文和英文。
如果需要,留下mail我可以发给你。

解决方案 »

  1.   

    用法如下:
    DETZipInputStream zip = new DETZipInputStream(
                                   new FileInputStream(zipFileName), "字符编码方式如gbk之类");
      

  2.   

    我的email 为 [email protected],谢谢您!
      

  3.   

    解决的一个办法:引入ant.jar中的 org.apache.tools.zip.ZipOutputStream; FileOutputStream ff = new FileOutputStream(fileName + ".zip");
    out = new ZipOutputStream(ff);
    for (int i = 0; i < filePath.length; i++) {

    FileInputStream inFile = new FileInputStream(filePath[i]);
    BufferedInputStream in =
    new BufferedInputStream(new FileInputStream(filePath[i]));
    out.setEncoding("你要指定的字符集");
    out.putNextEntry(new ZipEntry(filePath[i]));
    int c;
    while ((c = inFile.read()) != -1)
    out.write(c);
    in.close();
    }
    out.close();试过,可以:)