Java ZipInputStream(BufferedInputStream,字符集)未定义
我确实提出了一个问题,我看到存在一个ZipInputStream的构造函数,名为:Java ZipInputStream(BufferedInputStream,字符集)未定义,java,android,zipinputstream,Java,Android,Zipinputstream,我确实提出了一个问题,我看到存在一个ZipInputStream的构造函数,名为: ZipInputStream(BufferedInputStream,Charset) 但调试器向我抛出了错误: ZipInputStream(BufferedInputStream,Charset)未定义 给我一个建议: 删除参数以匹配ZipInputStream(InputStream) 我已经安装了最新版本和JRE 7,但仍然有相同的错误 最后我在这里解决了这个问题: 如果你编写了一个android应用程序
ZipInputStream(BufferedInputStream,Charset)
但调试器向我抛出了错误:
ZipInputStream(BufferedInputStream,Charset)未定义
给我一个建议:
删除参数以匹配ZipInputStream(InputStream)
我已经安装了最新版本和JRE 7,但仍然有相同的错误
最后我在这里解决了这个问题:
如果你编写了一个android应用程序,那么你正在使用android库。没有签名为ZipInputStream(InputStream,Charset)的公共构造函数。你在电脑上安装什么JDK或JRE并不重要,因为你的应用程序不会在电脑上运行(或在电脑上运行,而是在模拟器上运行)。显然,Android API中没有其他选择。但是,如果您可以安排ZIP文件设置了“语言编码标志(EFS)”位,那么最新版本的android应该尊重它,并将条目名称作为UTF-8编码的线程 注意,第二个
ZipInputStream
构造函数被添加到Java7中的(真实的)Java类库中,Android API基于Java6
参考:
java.nio.charset.charset
,是否还有其他选择?我的zip文件中有一些特殊字符。@Ernandovale:我对java/android和字符集没有太多经验,但看起来使用ZipInputStream作为构造函数参数就可以做到这一点。@fabian-我怀疑这一点。字符集指定的是ZipEntry名称的编码,而不是文件本身。最后,我使用外部库解决了如何使用7zip或其他压缩程序将EFS标志设置为zip文件的问题?我已经搜索过了,但是没有找到很多。谢谢,我终于在这里解决了我的问题