java解压ZIP文件并解决中文乱码问题

本文介绍了在Java中解压ZIP文件时遇到的中文乱码问题及其解决方案。当ZIP文件由不同平台的工具(如Windows下的WinRAR、Linux、MacOS)压缩,文件名可能采用GBK或UTF-8编码。使用zip4j库时,可以针对这种情况编写递归方法来正确解压并处理中文文件名的乱码。文章提供了相关的Maven配置信息和代码示例。
摘要由CSDN通过智能技术生成

场景:解压xxxx.zip文件(如果zip文件里面嵌套zip,市面上工具基本不支持,自己写个递归方法即可),中文文件名出现乱码

工具:zip4j(默认编码集UTF-8)

乱码原因:

        ZIP格式在不同平台上使用不同软件压缩:

                       1. Windows下使用WinRAR、好压、快压、百度压缩、360等工具压缩的文件 特点:文件名为GBK编码

                       2. 使用Linux、MacOS等系统压缩的zip文件 特点:文件名为UTF-8编码

maven配置信息:

  <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.7.0</version>
   </dependency>

解决方法:(直接上代码)


import com.google.common.collect.Lists;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

/**
 * @author Angelo
 * @date 2021/4/12 16:44
 **/
public class ZipUtils {

    private static final Logger logger &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值