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();

 

Java

Posted by arkgame