Android のNから、ZipFileのentriesなどでZipEntryを取得する時に、 Windows環境で日本語のフォルダ名を含む状態でExplorerなどから作ったzipなどだと、

IllegalArgumentException: MALFORMED

などというExceptionが上がるようになってしまった。 ZipFileのコンストラクタにCharsetが追加されて、この影響でデフォルトがUTF8になったせいっぽい。

Stackoverflow: Unzipping a file with special characters in filenames from API24 upward

Cp932とかCp942を指定したらUnsupported Charsetだとかいうruntime exceptionが上がってきた。 とりあえずCp437を指定したら動いたが、 このエンコーディングをAndroidのどの環境がサポートしているかはよくわからない。

まぁどっちにしろもとのコードでもIlegalArgumentExceptionは上がるのだから、 とりあえずNよりあとの場合、1つ目のzipエントリを取り出してみてexceptionだったらCp437を指定する、 というコードを足しておく。