我有一个包含以下内容的 zip 文件:
Temperature_°C.log 文件中的内容: 单位°C
我使用以下代码打印 zip 文件中的所有文件名:
public static void main(String[] args) {
try {
ZipFile zipFile = new ZipFile("Test.zip", Charset.forName("UTF-8"));
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
try {
ZipEntry zipEntry = entries.nextElement();
System.out.println(zipEntry.getName());
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
zipFile.close();
} catch (IOException ex) {
Logger.getLogger(ZipTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
在代码的第ZipEntry zipEntry = entries.nextElement();
行,针对Temperature_°C.log文件,它会抛出java.lang.IllegalArgumentException: MALFORMED
异常。
我尝试了UTF-8
编码,但无效。当我使用ISO-8859-1
编码时,显示乱码字符。
我该如何解决这个问题?
ø
是 带斜线的拉丁小写字母 O 吗?这是使用cp437
(或在创建 zip 文件的计算机上的 OEM 代码页)产生的乱码。 - JosefZ