Поиск:

Имена файлов в ZIP-архивах

zip300.jpg По работе, часто приходится иметь дело с ZIP-архивами, созданными в Windows и содержащими русские символы в именах файлов. На основных серверах и моей рабочей машине стоит Linux c локалью UTF-8, и это обстоятельство привносит свои нюансы.

Из-за несовпадения системных кодировок ОС, при просмотре и распаковке содержимого таких архивов требуется перекодировка имён файлов. То же самое приходится делать, если на локальной машине нужно запаковать файлы в ZIP-архив для Windows-пользователя.

В течение нескольких лет я пользовался самописными скриптами, alias-ами команд для автоматической перекодировки туда-обратно. Грамотное решение нашлось неожиданно и совсем недавно. Программисты компании AltLinux создали набор патчей для автоматической поддержки разных кодировок для продуктов Info-ZIP. Технические детали описаны на OpenNet, там же ведётся дискуссия по их использованию.

Тестирование в реальных «боевых» условиях не выявило никаких проблем ни в Windows, ни в Linux-окружении. Создаваемые архивы теперь «мульти-платформенны» без каких-либо дополнительных телодвижений. В довершение, собранные RPM-пакеты библиотеки libnatspec и пропатченных zip и unzip для RHEL5/CentOS можно скачать здесь.

Обсуждение

Yury V. Zaytsev, 24/12/2010 12:13

Надо пользоваться mc для этого — заходишь в архив и нажимаешь Meta+e.

Денис Фатеев, 24/12/2010 13:55

Мне нужно было не только просматривать архивы с Винды, но и паковать архивы для Виндовс-пользователей. Чтобы они в WinRAR-е видели нормальные русские буквы, как и у меня на Linux с локалью UTF-8. Поэтому был реализован такой универсальный вариант. Он оказался удобнее, поскольку прозрачен для меня и для пользователя.

Yury V. Zaytsev, 24/12/2010 14:03

Вот зараза, проверил под 7-Zip в Wine, действительно, если паковать в ZIP с локалью UTF-8, он показывает для кириллицы двухбайтные имена. Ну ладно, тогда моё решение работает только на просмотр файлов, пришедших от вендо-пользователей.

Денис Фатеев, 24/12/2010 14:20

Последний WinZip реализует поддержку Юникода в именах файлов, но сделано это на редкость коряво. 7-Zip тоже что-то умеет, будучи запущен с ключами »–with-utf*», только я так и не разобрался. В WinRAR-е нормальная поддержка Юникодных имён файлов появилась где-то в четвёртой версии, а многие сидят на третьей.

Поэтому, самый совместимый вариант – если пользовать ZIP и есть Вин-пользователи, то паковать так, как привыкла видеть его Виндовс, и пусть все будут довольны :-)



 
© 2009–2013 Денис Фатеев (Danger)
Копирование контента без указания автора преследуется сотрудниками ада.
Recent changes RSS feed
Valid XHTML 1.0
Valid CSS