使用java.util.zipoutputstream发现中文名出现乱码,并且试着使用new String(filename.getBytes("GBK"),"ISO-8859-1")还是无效。
后来查阅资料,java.util.zipoutputstream无法设置字符集,只能使用org.apache.tools.zip.ZipOutputStream,这样的话可以设置字符集。
解决办法:
只需要将包替换成Apache的即可,代码不需要改变,多一行 zos.setEncoding("UTF-8"); Apache会自动处理中文编码集。
ZipEntry 包也同理替换成Apache的即可。