【发布时间】:2019-05-04 00:44:34
【问题描述】:
我正在尝试解压缩其中包含德语字符的文件夹,例如 Aufhänge 。 我知道在 Java 7 中,它默认使用 utf-8,我认为“ä”是 utf-8 字符之一。 这是我的代码 sn-p
public static void main(String[] args) throws IOException {
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(ZIP_PATH), StandardCharsets.UTF_8);
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
System.out.println(zipEntry.getName());
}
}
这是我得到的错误:java.lang.IllegalArgumentException: MALFORMED
它适用于 Charset.forName("Cp437"),但不适用于 StandardCharsets.UTF_8
【问题讨论】:
-
如果ZIP文件不包含任何个人信息,请分享一下吗
-
它很容易复制,只需创建一个名为 Aufhänge 的文本文件并压缩它
-
我试过了,但我没有收到错误
-
我用JAVA8编译
-
我也在使用 Java 8。也许问题可能出在操作系统中。我使用的是 Windows 10。我认为在 linux 上文件名的编码方式不同。