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

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

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

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

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