inputStreamをエントリとしてzipに追加するメソッドがあります。
private void addToZip(InputStream is, String filename) throws Exception {
try {
ZipEntry zipEntry = new ZipEntry(filename);
zos.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = is.read(bytes)) >= 0) {
zos.write(bytes, 0, length);
}
zos.closeEntry();
} finally {
IOUtils.closeQuietly(is);
}
}
この問題は、ファイル名にáéのようなUTF-8文字が含まれている場合に発生します... zipファイルでは、として保存され?????
、ubuntu 12.10で解凍すると、N├бstroje
の代わりに次のようになりNástroje
ます。
この例では、jdk6を使用しましたが、jdk7も試しました。
zos = new ZipOutputStream(fos, Charset.forName("UTF-8"));
しかし、成功しませんでした。
また、Apache Commons Zipとセットエンコーディングを試しましたが、成功しませんでした。
では、ファイル名にユニコード記号を含むこのファイルをzipに追加するにはどうすればよいですか?