По работе, часто приходится иметь дело с ZIP-архивами, созданными в Windows и содержащими русские символы в именах файлов. На основных серверах и моей рабочей машине стоит Linux c локалью UTF-8, и это обстоятельство привносит свои нюансы.
Из-за несовпадения системных кодировок ОС, при просмотре и распаковке содержимого таких архивов требуется перекодировка имён файлов. То же самое приходится делать, если на локальной машине нужно запаковать файлы в ZIP-архив для Windows-пользователя.
В течение нескольких лет я пользовался самописными скриптами, alias-ами команд для автоматической перекодировки туда-обратно. Грамотное решение нашлось неожиданно и совсем недавно. Программисты компании AltLinux создали набор патчей для автоматической поддержки разных кодировок для продуктов Info-ZIP. Технические детали описаны на OpenNet, там же ведётся дискуссия по их использованию.
Тестирование в реальных «боевых» условиях не выявило никаких проблем ни в Windows, ни в Linux-окружении. Создаваемые архивы теперь «мульти-платформенны» без каких-либо дополнительных телодвижений. В довершение, собранные RPM-пакеты библиотеки libnatspec и пропатченных zip и unzip для RHEL5/CentOS можно скачать здесь.
Обсуждение
Надо пользоваться mc для этого — заходишь в архив и нажимаешь Meta+e.
Мне нужно было не только просматривать архивы с Винды, но и паковать архивы для Виндовс-пользователей. Чтобы они в WinRAR-е видели нормальные русские буквы, как и у меня на Linux с локалью UTF-8. Поэтому был реализован такой универсальный вариант. Он оказался удобнее, поскольку прозрачен для меня и для пользователя.
Вот зараза, проверил под 7-Zip в Wine, действительно, если паковать в ZIP с локалью UTF-8, он показывает для кириллицы двухбайтные имена. Ну ладно, тогда моё решение работает только на просмотр файлов, пришедших от вендо-пользователей.
Последний WinZip реализует поддержку Юникода в именах файлов, но сделано это на редкость коряво. 7-Zip тоже что-то умеет, будучи запущен с ключами »–with-utf*», только я так и не разобрался. В WinRAR-е нормальная поддержка Юникодных имён файлов появилась где-то в четвёртой версии, а многие сидят на третьей.
Поэтому, самый совместимый вариант – если пользовать ZIP и есть Вин-пользователи, то паковать так, как привыкла видеть его Виндовс, и пусть все будут довольны