返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中zip压缩乱码解决方法(附代码)
  • 599
分享到

java中zip压缩乱码解决方法(附代码)

java 2020-12-29 15:12:01 599人浏览 无得
摘要

用java来打包文件生成压缩文件,有两个地方会出现乱码(推荐:Java基础教程)内容的中文乱码问题,这个问题网上很多人给出了解决方法,两种:修改sun的源码;使用开源的类库org.apache.tools.zip.ZipOutputStre

用java来打包文件生成压缩文件,有两个地方会出现乱码(推荐: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默认使用项目的编码方式,理论上讲utf-8也是支持中文的,是在想不通为啥还是乱码,通过setEncoding方法改成gbk即可解决。

附上一段压缩文件的代码

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 {  
  
      
    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();  
    }  
  
}

--结束END--

本文标题: java中zip压缩乱码解决方法(附代码)

本文链接: https://lsjlt.com/news/1700.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中zip压缩乱码解决方法(附代码)
    用java来打包文件生成压缩文件,有两个地方会出现乱码(推荐:java基础教程)内容的中文乱码问题,这个问题网上很多人给出了解决方法,两种:修改sun的源码;使用开源的类库org.apache.tools.zip.ZipOutputStre...
    99+
    2020-12-29
    java
  • java zip压缩乱码原因与解决方法介绍
    java zip压缩乱码的原因与解决方法:(推荐:java视频教程)运行环境Jdk 1.5,win 7中文版JDK1.5中有zip压缩相关的API,在java.util.zip包下面。正常情况下,使用JDK自带的API把目录(文件)压缩成z...
    99+
    2015-12-05
    java
  • java文件压缩乱码解决方法
    一、文件压缩的中文乱码问题中文文件名的乱码解决对于压缩的文件,当文件名称是中文时,若使用JDK API中自带的类(java.util.zip.ZipEntry; java.util.zip.ZipOutputStream;)进行压缩,压缩完...
    99+
    2021-05-16
    java 乱码
  • php解压zip乱码的解决方法
    这篇文章给大家分享的是有关php解压zip乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php解压zip乱码的解决办法:首先打开相应的PHP文件;然后用PHP的zip封装协议解压去解决ZipArch...
    99+
    2023-06-14
  • java中解压乱码解决方法
    第一种使用ant实现的zip解压缩,其中解压的乱码注意使用public void unZip(String unZipFileName,String outputPath) 其中this.zipFile = new ZipFile(unZi...
    99+
    2020-06-12
    java
  • python解决Fedora解压zip时中文乱码的方法
    前言 很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip -O GBK filename.zip` 就可以搞定。 换了Fedora后,暂时...
    99+
    2022-06-04
    乱码 中文 方法
  • java解压zip包出现乱码
    解决思路:首先判断需要解压的文件是否存在或路径是否正确,接着判断路径是否存在,若不存在则创建路径,然后判断压缩文件是否合法,最后设置文件名称编码为“GBK”即可。免费在线教学视频分享:java教学视频示例代码:package com.yun...
    99+
    2020-01-03
    java 解压 zip包 乱码
  • Android实现下载zip压缩文件并解压的方法(附源码)
    前言 其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这篇文章在此记录一下下载zip文件并直接解压的方法,直接上代码,文末有源码下载。 下载: ...
    99+
    2022-06-06
    方法 zip 解压 源码 Android
  • Python压缩解压缩zip文件及破解zip文件密码的方法
    python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: readability/readability.js readability...
    99+
    2022-06-04
    文件 解压缩 密码
  • vbs实现zip压缩与unzip解压缩函数的代码分享
    本篇内容主要讲解“vbs实现zip压缩与unzip解压缩函数的代码分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vbs实现zip压缩与unzip解压缩函数的代码分享”吧!压缩代码: 复制代码...
    99+
    2023-06-08
  • 怎么解决php压缩中文乱码问题
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。怎么解决php压缩中文乱码问题?解决php使用ZipArchive解压时中文乱码问题(纯php,绕开ZipArchive)解决php使用ZipArchive解压时中文...
    99+
    2024-04-02
  • php压缩中文乱码问题如何解决
    这篇“php压缩中文乱码问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php压缩中文乱码问题如何解决”文章吧。p...
    99+
    2023-07-04
  • java中string乱码解决方法
    java中string乱码解决方法:(推荐:java视频教程)对字符串进行转码来解决字符串乱码代码如下:System.out.println(str); String str1 = new String(str.ge...
    99+
    2021-08-15
    java
  • java中url乱码解决方法
    java中url乱码解决方法:(推荐:java视频教程)将字符串转码:newString(“xxxxx”.getBytes(“iso-8859-1”),”utf-8”)这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为...
    99+
    2017-05-02
    java
  • java中request乱码解决方法
    POST中文乱码解决方式:POST通过request body传递参数。设置response的字符流的编码方式为UTF-8。request.setCharacterEncoding("UTF-8"); 这句话解决了POST方式提交的中文乱码...
    99+
    2019-08-18
    java request 乱码
  • CSS压缩与CSS代码压缩还原的方法
    本文小编为大家详细介绍“CSS压缩与CSS代码压缩还原的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS压缩与CSS代码压缩还原的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • java web乱码解决方法
    设置文件的保存编码格式,这个一般在新建项目时,设置了GBK的编码格式,这时文件的页面编码格式是GBK的,而保存格式是ANSI的,后来把项目及文件的编码格式改为utf-8的编码格式后,依然出现中文乱码,这就是因为已经存在的文件的保存编码格式还...
    99+
    2014-05-26
    java 乱码
  • java中请求乱码解决方法
    出现的问题:通过get请求向服务器发送请求时,如果请求参数为中文时,服务器端接受到的参数为乱码。乱码原因分析及解决办法:关于解码和编码编码:'中'→1110001解码:1110001→'中'乱码:编码和解码过程中使用了不同的字符集Web应用...
    99+
    2020-03-30
    java
  • java中解决中文乱码的方法
    java中解决中文乱码的方法:POST请求中文乱码处理(在获得参数值之前设置)req.setCharacterEncoding("UTF-8");GET请求处理中文乱码 //String username = req.getParamete...
    99+
    2019-04-07
    java 乱码
  • Java实现把文件压缩成zip文件的示例代码
    实现代码 ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作