Исправление кодировки в zip-архивах

Проблема совместимости кодировок существует давно, но побороться с ней до конца все еще не могут. Примером тому могут служить неверная кодировка mp3-тегов, кракозябры вместо сообщений в IM-клиентах (например, pidgin), а также неверная кодировка при распаковке zip-архивов, созданных в Windows. Что ж, решение первой проблемы обсуждалось в недавней статье, кодировку сообщений в IM-клиентах можно исправить либо патчами, либо выставлением в настройках кодировки "windows-1251", а что делать с архивами?

Тут вариантов несколько. Можно перейти в Windows (или попросить знакомого) распаковать zip-архив через winrar и запаковать, например, в rar. Можно установить пропатченные пакеты zip и unzip в Linux, правда найти эти пакеты последних версий не всегда легко. Есть еще один способ распаковки zip-архивов с правильной кодировкой - с помощью пакета fuze-zip и небольшого скрипта. Рассмотрим на примере Ubuntu (Linux Mint).

Установим fuze-zip:

sudo apt-get install fuse-zip

Теперь создадим директорию, в которую будут временно "монтироваться" наши zip-архивы:

mkdir ~/.ZIP

В любом текстовом редакторе создаем файл со следующим содержанием:

#! /bin/bash
fusermount -u ~/.ZIP
fuse-zip "$1" .ZIP -omodules=iconv,from_code=CP866,to_code=UTF8
nautilus ~/.ZIP
xrefresh -white

Сохранить этот скрипт можно под любым именем хоть в домашнюю директорию, хоть куда-либо еще, главное в свойствах файла не забыть сделать его исполняемым.

Теперь нужно назначить открытие zip-архивов с помощью данного скрипта.

После этого все zip-архивы, созданные в Windows, будут открываться с верной кодировкой, а работать с ними можно будет в режиме чтения и записи, то есть как будто у нас вместо архива обычная папка.

Подводные камни могут попадаться при использовании скрипта с архивами, созданными в самой Ubuntu, в этом случае можно написать другой скрипт без указания параметров кодировок.

Комментарии

Аватар пользователя Гость

зачем же такие велосипеды,можно же просто пропатчить unzip.

Аватар пользователя del

А Вы статью то прочитали или только заголовок? Процитирую тогда:

Можно установить пропатченные пакеты zip и unzip в Linux, правда найти эти пакеты последних версий не всегда легко.

Аватар пользователя Dmitriy Klyachkin

Ну чуть не поругались. А информация полезная.

Добавить комментарий