java  解压zip中文文件 出现错误 
java.lang.IllegalArgumentException: MALFORMED
at java.util.zip.ZipCoder.toString(Unknown Source)
at java.util.zip.ZipInputStream.readLOC(Unknown Source)
at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
at com.yc.utils.TestZip.extZipFileList(TestZip.java:40)
at com.yc.utils.TestZip.main(TestZip.java:21)
是不是ZipInputStream的编码问题啊?如何处理?不要修改jdk里的源代码。望高手解答。

解决方案 »

  1.   

    要修改ZipInputStream这个类的getUTF8String这个方法在这个方法前面加上一段代码try
    {
      String s= new String(b,off,len,"gbk");
      return s;}catch(){
      .....
    }
      

  2.   

    有没有不修改jdk里的源码方法 你这种方法我知道,我想要的是不修改里面的,是不是ant的包可以实现 但具体如何实现,?
      

  3.   

    用ant的话,好像在创建ZIPFile对象的时候指定字符集。
    new ZipFile(unZipFileName,"GBK"); 
      

  4.   

    阿帕奇有个zip包的 可以解决中文乱码,用法和java的几乎一样