Попробуйте
new ZipInputStream(new BufferedInputStream(is), Charset.forName("Windows-1256"));
, по умолчанию используется UTF-8, и это, очевидно, не работает.
После обратной связи: очевидно, существует какая-то проблема с версией API Android.
Вы можете проверить:
filename = ze.getName();
Иногда можно «исправить» кодировку.Очень подвержен ошибкам или даже неосуществим.
filename = new String(filename.getBytes("..."), "...");
, где можно попробовать разные кодировки:
(особенно преобразование в UTF-8 может вызвать ошибки преобразования, поскольку UTF-8 требует, чтобы байты имели определенный битовый шаблон для многобайтовых последовательностей.)