ZipInputStream создает исключение незаконного аргумента для диакритических знаков - PullRequest
2 голосов
/ 06 октября 2010

Если я запускаю приведенную ниже программу с zip-файлом, в котором есть несколько файлов с диакритическими знаками (например, 1-2GF-969 ## JÖN.pdf), я получаю IllegalArgumentException.

Мое приложение должно поддерживать всеязыки.Итак, мы установили кодировку UTF-8

Все языки работают нормально.Но проблема возникает при чтении диакритических знаков.

Я пытался использовать альтернативы zip-потоку ввода, например arcmexer, но он не поддерживает китайские символы.

Пожалуйста, помогите мне с этим.

  private static void readUsingJava() {
        ZipInputStream zis;
        try {
              zis = new ZipInputStream(new FileInputStream("C:\\Check.zip"));
              ZipEntry ze;
              while ((ze = zis.getNextEntry()) != null) {
                    System.out.println("Name of the File Is  :: " + ze.getName());
              }
              zis.close();
        } catch (FileNotFoundException e) {
              e.printStackTrace();
        } catch (IOException e) {
              e.printStackTrace();
        }
  }

1 Ответ

1 голос
/ 11 октября 2010

Скорее всего, ZIP-архивы, с которыми вы пытались это сделать, не используют кодировку UTF-8. Эта статья должна помочь: http://commons.apache.org/compress/zip.html

...