Java8 java.lang.IllegalArgumentException: MALFORMEDの対処方法
環境
Java SE 1.8
Eclipse 4.14
エラー現象
Caused by: java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) at java.util.zip.ZipFile.getZipEntry(ZipFile.java:583) at java.util.zip.ZipFile.access$900(ZipFile.java:60)
原因
日本語を含むファイル名の文字エンコードが MS932です
修正方法
ZIP解凍の実装側で対応する場合は Charset “MS932″を ZipInputStreamの第二引数に指定します。
使用例
Charset charset = Charset.forName("MS932"); InputStream is = 中略; ZipInputStream zis = new ZipInputStream(is, charset); ZipEntry entry = zis.getNextEntry();