用java来打包文件生成压缩文件,有两个地方会出现乱码:

内容的中文乱码问题:修改sun的源码。使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以下载使用即可。

压缩文件注释的中文乱码问题:zos.setComment("中文测试");通过使用设置编码的方法(zos.setEncoding("gbk");)发现问题,测试项目的编码方式为gbk,而默认编码是utf-8。

org.apache.tools.zip.ZipOutputStream默认使用项目的编码方式,通过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();

}

}

以上就是java压缩文件乱码问题的详细内容,感谢大家的学习和对脚本之家的支持。

java 压缩 乱码_如何解决java压缩文件乱码问题相关推荐

  1. php加载的文件都是乱码_怎么解决php读取文件乱码问题

    php读取文件乱码的解决办法:首先打开相应的代码文件:然后通过"iconv($encodType, "utf-8", $content); "方法解决中文乱码即 ...

  2. 解压后java文字乱码_怎么解决java解压zip包出现乱码

    怎么解决java解压zip包出现乱码 发布时间:2020-06-23 09:02:42 来源:亿速云 阅读:107 作者:Leah 怎么解决java解压zip包出现乱码?相信很多没有经验的人对此束手无 ...

  3. java http请求 乱码_怎么解决java中的http请求乱码

    怎么解决java中的http请求乱码 发布时间:2020-06-23 20:00:11 来源:亿速云 阅读:90 作者:元一 怎么解决java中的http请求乱码?针对这个问题,今天小编总结了这篇文章 ...

  4. php echo 中文乱码_怎么解决php echo中文乱码问题?

    怎么解决php echo中文乱码问题?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 需要了解的概念: Content-Type:用于定义用户的浏览器或相 ...

  5. python 折线图中文乱码_彻底解决 Python画图中文乱码问题--Pyplotz组件

    1 源起 自从开始学习Python,就非常喜欢用来画图.一直没有需求画要中文显示信息的图,所以没有配置Python中文的环境.由于昨天就需要画几十个形式相同,只是数据不同的图,并且需要显示中文信息.如 ...

  6. mapinfo的tab图层汉字乱码_如何解决MapInfo打开文字乱码的问题

    在使用MapInfo的过程中有时候会遇到这样的情况,由于文字中有韩语.日语或者阿拉伯语等文字的时候会显示为乱码或者问号,这主要是文字编码的问题,这里以shp格式的数据转换为tab格式为例,介绍一下解决 ...

  7. 如何排查mysql数据乱码_如何解决MYSQL数据库中文乱码问题?

    aluckdog 在数据库安的时候指定字符集如果在安完了以后可以更改以下文件:C:\Program Files\MySQL\MySQL Server 5.0\my.ini里的所有的 default-c ...

  8. linux vim打开乱码,linux下解决vim打开文件乱码现象

    maven + eclipse + tomcat热部署 环境:eclipse  + tomcat  + maven + m2eclipse 解决这种问题有两种方案(方案二更好用,不想看方案一的人可以直 ...

  9. 解决fileReader读取文件乱码

    解决fileReader读取文件乱码 idea默认编码格式是utf-8(标准万国码的一种),而Windows操作系统默认是GBK(中文码表),如果fileReader读取系统中的文件,则无法将字节转换 ...

最新文章

  1. Leetcode-最佳买卖股票机含冷冻期
  2. boost::system::error_category相关的测试程序
  3. 【JDK源码】java.io包常用类详解
  4. 工作中常用到的 Spring 依赖管理技术盘点
  5. (亲测可行)vivo设备一键激活xposed框架方法
  6. 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数
  7. 转载 SpringMVC详解(三)------基于注解的入门实例
  8. 计算机二级Java上机环境安装与使用
  9. 控制系统matlab仿真,控制系统MATLAB仿真作业
  10. JavaScript判断数组的方法
  11. BOOST升压有源功率因数校正
  12. 微信开发遇到的那些坑
  13. Linux面试题史上最全总结
  14. 离骚,屈原,名句翻译
  15. 计算机裸机的功能,计算机中裸机是指什么
  16. 英语介词at、in、on常见用法(时间、地点、方位)
  17. C语言arduino密码锁实验报告,简易密码锁的制作-Arduino中文社区 - Powered by Discuz!...
  18. FCES2019 panel5:北大、南大、浙大的人工智能课程是如何建设的?
  19. checkpoint NGFW VM安装
  20. 我们说的那些培训班,到底要不要报?自学编程VS培训报班

热门文章

  1. LoadRunner8.1破解汉化过程
  2. ROS(Robot Operating System)笔记 : 1.使用launch file在gazebo中生成urdf机器人
  3. 大话数据结构 (程杰 著)
  4. Bitmap尺度变换
  5. 《Python地理数据处理》——导读
  6. 修改mysql表的存储引擎
  7. [转载]如何将Putty生成的PrivateKey转换为SecureCRT所需的PublicKey
  8. .net 预编译 提示中导入的类型 冲突
  9. 禁止ipc$默认共享的方法
  10. 大脑可以自动修复酗酒造成的脑细胞损坏