【问题标题】:how to set charset utf-8 in zip4j without charset function?如何在没有字符集功能的 zip4j 中设置字符集 utf-8?
【发布时间】:2019-08-13 03:11:11
【问题描述】:

我想用 utf-8 解压 zip 文件,但是 2.1.2 版本没有 zipfile.setcharset 功能。

public void unZipFiles(File zipfile, String descDir) {
    try {
        ZipFile zfile = new ZipFile(zipfile);

        // zfile.setcharset
        zfile.extractAll(descDir);
    } catch (ZipException e) {
        e.printStackTrace();
    }
}

【问题讨论】:

    标签: java zip4j


    【解决方案1】:

    Zip4j v2.x 将自动检测文件名是否使用 utf-8 字符集编码,如果是,则在提取过程中使用它。此标志(无论是否使用 utf-8)在 zip 标头参数中定义。

    Zip4j v1.x 可以选择定义自定义字符集,但这会导致 zip4j 与标准 zip 规范不兼容,该规范只允许在一个 zip 文件中使用两个字符集,一个是 cp437,另一个是是 utf-8。

    简而言之,您不必在 v2.x 中显式设置字符集,如果需要,Zip4j 会自动检测并使用它。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 2012-01-14
      • 2017-01-17
      • 2014-08-16
      • 2013-05-26
      • 2010-12-12
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多