广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/1700.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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
    乱码 中文 方法
  • 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
    文件 解压缩 密码
  • 怎么解决php压缩中文乱码问题
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。怎么解决php压缩中文乱码问题?解决php使用ZipArchive解压时中文乱码问题(纯php,绕开ZipArchive)解决php使用ZipArchive解压时中文...
    99+
    2022-11-14
  • php压缩中文乱码问题如何解决
    这篇“php压缩中文乱码问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php压缩中文乱码问题如何解决”文章吧。p...
    99+
    2023-07-04
  • java中request乱码解决方法
    POST中文乱码解决方式:POST通过request body传递参数。设置response的字符流的编码方式为UTF-8。request.setCharacterEncoding("UTF-8"); 这句话解决了POST方式提交的中文乱码...
    99+
    2019-08-18
    java request 乱码
  • java中url乱码解决方法
    java中url乱码解决方法:(推荐:java视频教程)将字符串转码:newString(“xxxxx”.getBytes(“iso-8859-1”),”utf-8”)这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为...
    99+
    2017-05-02
    java
  • java中string乱码解决方法
    java中string乱码解决方法:(推荐:java视频教程)对字符串进行转码来解决字符串乱码代码如下:System.out.println(str); String str1 = new String(str.ge...
    99+
    2021-08-15
    java
  • 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乱码问题解决方法
    java乱码,分为几个位置的乱码。(推荐:java视频教程)一、是JSP页面乱码问题,解决方式:二、后台向前端传输字符串的的乱码解决方式: response.setContentType("text/html;charset=UTF-8")...
    99+
    2021-09-12
    java基础 java 乱码
  • java问号乱码解决方法
    在基于Java的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号。(推荐:java视频教程)这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。...
    99+
    2020-03-31
    java
  • java网页乱码解决方法
    java网页乱码常见地方如下:jsp页面中。EL表达式或者直接取值,哪怕写个固定的中文显示都会乱。java代码。前端到后端传输值,乱码。jsp页面编码。只要写jsp的都不陌生,更改页面的字符集。java后台代码。如果是java web项目,...
    99+
    2021-08-10
    java
  • java页面乱码解决方法
    在页面提交到tomcat乱码 解决方法是在tomcat/conf/server.xml中进行配置(推荐:java视频教程)以tomcat6.0.32为例,需将以下代码:Xml代码 改为:Xml代码 如果tomcat前端有Apache或是Ng...
    99+
    2021-02-14
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作