new ZipInputStream(new FileInputStream("test.zip"), StandardCharsets.UTF_8)
没有用呢,中文的文件、文件夹仍会报错(malformed input off : 1, length : 1
)。
这里都有注释的嘛,为什么会这样?
new ZipInputStream(new FileInputStream("test.zip"), StandardCharsets.UTF_8)
没有用呢,中文的文件、文件夹仍会报错(malformed input off : 1, length : 1
)。
这里都有注释的嘛,为什么会这样?
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.6k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
你把编码换成GBK就可以了:
原因是操作系统平台的差异,导致zip压缩包的编码格式不同,windows默认使用GB2312格式,mac和linux默认使用UTF-8格式,你指定UTF-8对于GB2312的字符转化没有起作用,而GBK是兼容GB2312的。
如果你想你的代码无视操作系统差异,可以使用
Apache Commons Compress
这个包的压缩/解压缩方法试试:
https://zhuanlan.zhihu.com/p/389762356