次のように .csv ファイルを圧縮しています。
fileInputStream = new FileInputStream(csvFile);
final ZipEntry zipEntry = new ZipEntry(csvFile.getname());
zipOutputStream.putNextEntry(zipEntry);
final byte[] buffer = new byte[4 * 1024];
int size = fileInputStream.read(buffer);
while (size != -1)
{
zipOutputStream.write(buffer, 0, size);
size = fileInputStream.read(buffer);
}
ファイル名に日本語/中国語の文字も含まれる winzip/7-zip で抽出すると、抽出された .csv ファイル名は文字化けしませんが、デフォルトの Windows エクストラクタを使用するとファイル名が文字化けします。