`
zys08
  • 浏览: 145544 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

关于使用JAVA.util.zip压缩文件后,解压缩时出现文件名乱码的解决办法

 
阅读更多
//使用org.apache.tools.zip包
	  public void ExportRARTest(String tablename[],HttpServletRequest request,String dir,String fileFolder,String isback) throws IOException{

		   byte[] buf = new byte[1024];
	       org.apache.tools.zip.ZipOutputStream out = new org.apache.tools.zip.ZipOutputStream(new FileOutputStream(dir));
	       String pathString="";
	       if ("yes".equals(isback)) {
			pathString=fileString+fileFolder;
		}
	       else {
			pathString=request.getRealPath("/")+"updbload";
		}
	       try {
	    	   for(int i=0;i<tablename.length;i++) {
		    	   tablename[i]=pathString+"/"+tablename[i];
		    	   File file=new File(tablename[i]);
		    	   if (file.exists()) {
		           FileInputStream fis = new FileInputStream(file);

		           out.putNextEntry(new org.apache.tools.zip.ZipEntry(file.getName()));
		           int len;
		           //读入需要下载的文件的内容,打包到zip文件
		          while((len = fis.read(buf))>0) {
		           out.write(buf,0,len); 
		          }
		           out.closeEntry();
		           fis.close();
		           file.delete();
		    	   }
		       }
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	      finally{
	        out.close();
	      }
	}
注意黑体<Strong></Strong>部分是解决中文乱码的关键!!!!!!

 

分享到:
评论

相关推荐

    java android zip解压缩(解决压缩中文乱码问题)

    本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...

    根据java.util.zip源码修改zip支持中文

    这是因为ZIP文件格式本身是支持Unicode编码的,但是Java的标准库在处理这些文件时默认使用了ISO-8859-1编码,这可能导致中文文件名显示为乱码或无法正确解压。 标题"根据java.util.zip源码修改zip支持中文"指的是...

    org.apache.tools.zip解决解压乱码问题

    * @param zipFileName 压缩产生的zip包文件名--带路径,如果为null或空则默认按文件名生产压缩文件名 * @param relativePath 相对路径,默认为空 * @param directory 文件或目录的绝对路径 * void */ ...

    java压缩zip文件解决中文乱码问题

    在Java中,`java.util.zip`包提供了对ZIP文件的基本操作,但默认使用的是平台默认的字符集,这可能在跨平台操作时引发乱码问题。 为了解决这个中文乱码问题,我们需要在创建ZipEntry时指定合适的字符集,通常是UTF-...

    ZipOutputStream 压缩文件以及乱码问题解决方案

    本文将深入探讨如何使用ZipOutputStream进行文件压缩,并解决可能出现的乱码问题。 首先,我们来看`ZipOutputStream`的基本用法。这个类继承自`FilterOutputStream`,提供了创建ZIP文件的功能。以下是一个简单的...

    JDK ZipEntry压缩中文文件名乱码解决

    项目中碰到问题.jdk zipEntry 压缩中文文件名乱码  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.  第二种 就是拿来主义,因为 开源项目 Ant 里已经有...

    文件解压和压缩 解决中文乱码

    对于ZIP压缩,可以使用`java.util.zip`包中的`ZipOutputStream`。对于RAR,使用JUnrar库,可以创建`RarArchiveOutputStream`来进行压缩。 ```java import net.lingala.zip4j.core.ZipFile; import ...

    读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)

    在读取ZIP文件时,我们首先需要打开ZIP文件并创建一个ZIP文件对象。然后,通过迭代这个对象,我们可以访问每个条目(即压缩的文件或目录),获取其文件名和内容。关键在于正确处理文件名的编码。在某些情况下,...

    ZipUtil文件压缩工具类(解决中文乱码)

    `ZipUtil`是一个专门用于文件压缩的工具类,它解决了在处理包含中文字符的文件或目录时可能出现的乱码问题。`ZipEntry`是Java标准库`java.util.zip`包中的核心类,用于表示ZIP文件中的一个条目,它可以是文件或目录...

    java zip压缩解压工具解决中文乱码问题

    在Java编程中,处理压缩和解压缩ZIP文件是一项常见的任务,尤其当文件中包含中文字符时,可能会遇到中文乱码的问题。这是因为Java的标准库在处理非ASCII编码时可能存在不足。本篇文章将详细介绍如何使用Java标准库...

    java zip文件压缩与解压缩

    总结来说,Java中使用Apache Commons Compress库进行ZIP文件操作,不仅提供了更丰富的功能,如设置字符编码,还能有效处理中文等非ASCII字符,保证了在处理多语言环境下的文件时不会出现乱码问题。通过上述方法,...

    java_zip压缩与解压缩(不支持中文,ant.jar包的下支持)

    因此,如果ZIP文件中的文件名包含中文,使用`java.util.zip`进行操作时,中文文件名可能会出现乱码。为了解决这个问题,开发者需要手动设置正确的字符编码,通常是UTF-8,来确保中文文件名能够正确处理。 Ant是一个...

    java zipentry.jar 解决解压失败问题

    不过,最好还是确保在创建ZIP文件时使用统一的编码,以减少在不同系统之间交换文件时可能出现的兼容性问题。在实际开发中,可以编写一个通用的解压函数,封装上述逻辑,以方便在项目中重用。 在本例中,虽然没有...

    Java ZIP压缩一个或多个文件(解决中文名称乱码).rar

    用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。

    基于Java向zip压缩包追加文件

    在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...

    JAVA文件压缩与解压缩实践(源代码+论文).zip

    File outputFile = new File("压缩后文件路径"); try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(inputFile)); GZIPOutputStream gzipOut = new GZIPOutputStream(new ...

    Java压缩和解压缩zip文件

    本篇文章将详细探讨如何使用Java内置的类库来实现ZIP文件的压缩和解压缩,以及解决中文文件名出现乱码的问题。 首先,我们要了解Java中处理ZIP文件的核心类:`java.util.zip.ZipOutputStream` 和 `java.util.zip....

    java解决压缩中文乱码

    因此,如果源文件包含中文字符且这些字符不是默认字符集的一部分,压缩后解压时就可能出现乱码。 解决这个问题的一种方法是自定义`DeflaterOutputStream`和`InflaterInputStream`,覆盖它们的`write`方法,确保使用...

    用java对文件进行压缩并且解决乱码问题

    2. 创建一个`ZipOutputStream`,并将其关联到一个输出流,例如`FileOutputStream`,这样我们可以通过这个`ZipOutputStream`将压缩后的数据写入一个新的ZIP文件。 3. 使用`ZipOutputStream`的`putNextEntry`方法来...

    Java压缩文件目录成ZIP包最新技巧

    本文将详细介绍如何使用`java.util.zip`包中的类来压缩文件及目录,并解决其中的一个常见问题——中文文件名或目录名的支持问题。 #### 一、Java自带压缩工具简介 Java标准库提供了`java.util.zip`包来处理文件的...

Global site tag (gtag.js) - Google Analytics