网学网为广大网友收集整理了,JDK ZipEntry压缩中文文件名乱码解决,希望对大家有所帮助!
项目中碰到问题.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");