-1

我想用 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();
    }
}
4

1 回答 1

0

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

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

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

于 2019-08-14T21:02:00.630 回答