当前位置:首页 > JDK ZipEntry压缩中文文件名乱码解决

JDK ZipEntry压缩中文文件名乱码解决

点击次数:2503  更新日期:2014-05-14

  项目中碰到问题.jdk zipEntry 压缩中文文件名乱码
  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.
  第二种 就是拿来主义,因为 开源项目 Ant 里已经有现成的实现.把ant.jar 加入到 工程下的lib目录即可.
  如果仅用到压缩,就加入ant.jar 就导致引入了一些不必要的文件,所以我找到Ant1.8的源码,然后只把需要的那一部分编译打包成了一个jar文件,供大家使用
  首先引入
  Java代码
  import org.apache.tools.zip.ZipEntry;
  import org.apache.tools.zip.ZipOutputStream;
  关键示例代码如下:
  Java代码
  zos = new ZipOutputStream(new FileOutputStream(zipname));
  FileInputStream fis = new FileInputStream(file);
  ZipEntry ze = new ZipEntry(file.getName());
  ze.setSize(file.length());
  ze.setTime(file.lastModified());
  zos.putNextEntry(ze); zos.setEncoding(\"gbk\");