Java 对不同语言的zip文件进行zip提取

Java 对不同语言的zip文件进行zip提取,java,Java,我有一个简单的java提取方法,使用java.util.zip包 编辑:请注意,我需要在Java1.5中运行代码,因为它必须作为oracle数据库中的java存储过程运行 它已经很好地工作了一段时间,但最近我遇到了一个错误,当我试图提取一个名称中包含西班牙语特殊字符的zip文件和其中包含西班牙语特殊字符的文件时 代码在上失败 ZipEntry entry = zis.getNextEntry(); 这是因为特殊的角色吗?我已经验证了zip没有损坏,并且已经在名称中带有特殊字符的其他zip上进

我有一个简单的java提取方法,使用java.util.zip包

编辑:请注意,我需要在Java1.5中运行代码,因为它必须作为oracle数据库中的java存储过程运行

它已经很好地工作了一段时间,但最近我遇到了一个错误,当我试图提取一个名称中包含西班牙语特殊字符的zip文件和其中包含西班牙语特殊字符的文件时

代码在上失败

 ZipEntry entry = zis.getNextEntry();
这是因为特殊的角色吗?我已经验证了zip没有损坏,并且已经在名称中带有特殊字符的其他zip上进行了测试,并且已经验证了它导致了相同的错误


最后,如果是这种情况,是否有解决办法

在Java 7中,您可以使用a指示字符编码。

在Java 7中,您可以使用a指示字符编码。

我发现org.apache.commons有一个压缩类,它有一系列不同的选项。它允许您指定编码参数,以便它现在可以接受来自不同语言的字符

我发现org.apache.commons有一个压缩类,它有很多不同的选项。它允许您指定编码参数,以便它现在可以接受来自不同语言的字符

关于哪个字符集Cp1252(Windows)、Cp850(DOS)可能会首先试用。我被要求使用java 1.5,因为它是作为oracle数据库中的java存储过程运行的。如果您非常幸运,您可以尝试捕获getNextEntry,发明一个文件名,然后继续。或者通过设置全局文件编码进行黑客攻击。最好报告一个故障,然后在web应用程序中执行。关于哪个字符集Cp1252(Windows),Cp850(DOS)可能会首先尝试。我被要求使用java 1.5,因为它在oracle数据库中作为java存储过程运行。如果您非常幸运,您可以尝试捕获getNextEntry,创建一个文件名,然后继续。或者通过设置全局文件编码进行黑客攻击。最好报告故障,然后在web应用程序中报告。