main

ZIP и кракозябры вместо имён файлов

Проблема файлов в "национальной кодировке" внутри zip-архивов достаточно старая, лет 5 ей есть точно. Вменяемого патча нет до сих пор.

Временным решением может быть следующие команды. Распаковываем как обычно, лучше в пустой директории.

ls -1 * | iconv -f cp1252 -t cp850 | iconv -f cp866 -t utf8

Это чтобы посмотреть, правильно ли перекодируются имена. Если на выходе что-то вменяемое, запускаем переименование:

ls -1 * | while read F
do
  N=$(echo "$F" | iconv -f cp1252 -t cp850  | iconv -f cp866 -t utf8)
  mv "$F" "$N"
done

Обрабатываются все файлы в текущем каталоге. Если есть файлы с нормальными именами - исправьте в начале «*» на соответствующий шаблон.

2012-06-04