Java, архивы, Linux и кириллица - PullRequest
3 голосов
/ 09 марта 2011

Я пытаюсь написать архиватор в java, который создает архивы TAR или ZIP, с правильными именами кириллических файлов, затем он открывается в linux. В windows я использую org.apache.tools.zip, из ant:

ZipOutputStream.setEncoding("cp866"); 

чтобы получить его, но файловый ролик (менеджер архивов) в Linux не понимает этого. В org.apache.tools.tar метод setEncoding () не существует. Также я пытаюсь использовать другую кодировку, которая поддерживает кириллицу, такую ​​как cp1251, utf-8, koi-8r, но она не дает результата.

1 Ответ

1 голос
/ 05 августа 2011

Ваш файл, возможно, создает файлы правильно, и проблема лежит на файловом ролике. Известно, что он не может обнаружить кодировку имени файла. См. здесь и здесь .

Попытка использовать распаковать (имена файлов, вероятно, будут искажены) или p7zip непосредственно из оболочки (есть также версия Java - j7zip).

У меня работает 7zip с кодировкой кириллицы в utf8. Файловый ролик, Арк и все остальные, которые фактически выполняют unzip, повредят имена файлов в моей системе.

...