用java来打包文件生成压缩文件,有两个地方会出现乱码
1、内容的中文乱码问题,这个问题网上很多人给出了解决方法,两种:修改sun的源码;使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以下载使用即可,毫无疑问,选择后者更方便
2、压缩文件注释的中文乱码问题:zos.setComment("中文测试");这个问题在网上查了半天没看到有人解释,遂只能自己想办法解决。在自己机器上的工程创建的测试类,没有任何问题,但是在公司的项目中使用一直出现乱码,通过使用设置编码的方法(zos.setEncoding("gbk");)终于发现了问题,测试项目的编码方式为gbk,而公司项目的默认编码是utf-8,所以测试项目没问题而公司的项目中出现了问题。 org.apache.tools.zip.ZipOutputStream默认使用项目的编码方式,理论上讲utf-8也是支持中文的,是在想不通为啥还是乱码,通过setEncoding方法改成gbk即可解决 附上一段压缩文件的代码
Java代码 收藏代码
package com.compress; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream; public class CompressEncodingTest { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
File f = new File("中文测试.txt");
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
new FileOutputStream("zipTest.zip"), 1024));
zos.putNextEntry(new ZipEntry("中国人.txt"));
DataInputStream dis = new DataInputStream(new BufferedInputStream(
new FileInputStream(f)));
zos.putNextEntry(new ZipEntry(f.getName()));
int c;
while ((c = dis.read()) != -1) {
zos.write(c);
} zos.setEncoding("gbk");
zos.setComment("中文测试"); zos.closeEntry();
zos.close();
} }

最新文章

  1. Gbase配置
  2. python关键字,运算符
  3. [To be translated] Nova:libvirt image 的生命周期
  4. ZOJ 3233 Lucky Number --容斥原理
  5. iOS下日期的处理
  6. .net Signalr 使用笔记
  7. 询url包括字符串参数(js高度注意事项)
  8. 使用Log4net记录日志
  9. Spring context:component-scan中使用context:include-filter和context:exclude-filter
  10. 前端里移动端到底比pc端多哪些知识?
  11. CentOS Linux搭建SVN服务器
  12. FTP连接超时
  13. javaWeb+servlet+mysql实现简单的企业员工管理系统
  14. [MapReduce_add_5] MapReduce 实现标签的生成与聚合
  15. C# 发送16进制串口数据
  16. Taints和Tolerations联用,将pod部署到k8s的master节点
  17. MyBatis - (一) 基本数据操作命令和简单映射
  18. 数十种TensorFlow实现案例汇集:代码+笔记
  19. Apache Flink学习笔记
  20. HDU 2814 斐波那契循环节 欧拉降幂

热门文章

  1. SGA内存的优化
  2. LeetCode——Summary Ranges
  3. vux 全局注册组件
  4. WEB安全番外第二篇--明日之星介绍HTML5安全问题介绍
  5. 微信小游戏 Egret开发数据域官方Demo下载地址
  6. AOP学习总结
  7. 【BZOJ1713】[Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 斜率优化
  8. SHTML 教程
  9. java jar命令及补丁方法
  10. mysql数据库新插入数据,需要立即获取最新插入的id