output = new ZipArchiveOutputStream(response.getOutputStream());
output.setCreateUnicodeExtraFields(UnicodeExtraFieldPolicy.ALWAYS);
response.setContentType(APPLICATION_ZIP);
output.putArchiveEntry(new ZipArchiveEntry("日本語.txt");
// write file to output stream
output.closeArchiveEntry();
但是下载后文件名是乱码,而文件(文件内容)没问题。
如果我使用FileOutputStream将zip文件写入文件系统,文件名将保留原样,但只有在使用ServletOutputStream传输文件时,Zip文件中的文件名才会出现乱码。
有解决方法吗?我是否还需要为输出流设置字符编码,不确定它是否真的存在?