ZipInputStream (InputStream, Charset) декодирует имя файла ZipEntry ложно

Java 7 должна решить старую проблему с распаковкой zip-архивов с наборами символов, отличными от UTF-8. Это может быть достигнуто с помощью конструктораZipInputStream(InputStream, Charset), Все идет нормально. Я могу распаковать zip-архив, содержащий имена файлов с умлаутами в них при явной установке набора символов ISO-8859-1.

But вот проблема: при переборе потока черезZipInputStream.getNextEntry(), записи имеют неправильные специальные символы в своих именах. В моем случае, умляут & # xFC; & quot; заменяется на «?» характер, который, очевидно, неправильно. Кто-нибудь знает, как это исправить? очевидноZipEntry игнорируетCharset его лежащего в основеZipInputStream, Это выглядит как еще одна ошибка JDK, связанная с zip, но я тоже могу делать что-то не так.

...
zipStream = new ZipInputStream(
    new BufferedInputStream(new FileInputStream(archiveFile), BUFFER_SIZE),
    Charset.forName("ISO-8859-1")
);
while ((zipEntry = zipStream.getNextEntry()) != null) {
    // wrong name here, something like "M?nchen" instead of "München"
    System.out.println(zipEntry.getName());
    ...
}

Ответы на вопрос(1)

Ваш ответ на вопрос