Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Linux - разное -> Проблема кириллицы в...

Проблема кириллицы в ZIP-архивах (кракозябры) под Linux

В статье:
Установка патченных zip/unzip под Debian-4 Etch, Debian-5 Lenny, Debian-6 Squeeze, Debian-7 Wheezy, Debian-8 Jessie, Ubuntu. Скрипт распаковки для ALT-Linux с GNOME. Ссылки на все необходимые пакеты для х86 и amd64.
Проблемы с кодировкой в zip-архивах больше нет!

   Вот ссылка на статью: http://www.opennet.ru/tips/2494_zip_rus_patch.shtml?skip=10
Выкачиваем zip и unzip, патчим и устанавливаем - всё работает (проверено под Debian-4 Etch, Debian-5.x.x Lenny, Debian-6.x.x Squeeze, Debian-7 Wheezy, Debian-8 Jessie)
В статье очень хорошо расписана вся последовательность действий.
Но устанавливать в Debian по данной схеме хоть и можно, но не нужно. Так как система управления пакетами ничего не будет знать о вашем обновлении.

Выкладываю пропатченные и собранные под Debian-5.x.x Lenny пакеты (они же и под Etch) архитектура х86:
Под Debian-6.x.x Squeeze и Debian-7 Wheezy, Debian-8 Jessie можно установить пакеты от UBUNTU - сборка из-под Lenny не пойдёт!

Нижеприведённые пакеты проверены под Debian-6.0.0 Squeeze (х86) и Debian-7.x.x Wheezy, Debian-8 Jessie (x86)
Скачать их так же можно одной консольной командой:

wget http://www.sakryukin.ru/uploads/deb\
/{libnatspec0_0.2.6-1ubuntu1_i386.deb,\
natspec-bin_0.2.6-1ubuntu1_i386.deb,\
p7zip-full_9.04-dfsg.1-1i18n3_i386.deb,
unzip_6.0-4ppa3_i386.deb,zip_3.0-3ppa2_i386.deb}

Информация для Squeeze получена с http://linuxforum.ru/viewtopic.php?id=556
Пакеты для UBUNTU, они же для Squeeze скачаны с
https://launchpad.net/~frol/+archive/zip-i18n/+packages (Series Natty)
Исходники можно скачать там же, где и бинарники.

Пакеты для архитектуры amd64 собраны в один архив (работоспособность проверил на Debian-7 Wheezy, Debian-8 Jessie). Откуда я взял эти пакеты не спрашивайте - не знаю. А для размещения на сайте вытаскивал их из работающей системы по средством dpkg-repack. Качаем по ссылке:


Ну или, опять таки, качаем одной консольной командой:

wget http://www.sakryukin.ru/uploads/deb/zip-amd64.tar.gz

Распаковываем скачанный архив:

tar xzf ./zip-amd64.tar.gz

Заходим терминалом в полученный каталог zip-amd64 и устанавливаем, к примеру вот так:

dpkg -i ./*.deb


Под ALT-Linux для устранения кракозябликов просто необходимо установить самую свежую версию zip и unzip из родного репозитория.
Однако, если используется графическая среда GNOME и архиватор file-roller, то проблему решить можно будет только установкой свежей версии zip/unzip (из репозитория) и отказом от file-roller для создания/распаковки zip-архивов.
Как же быть если нужно распаковать zip в ALT-Linux с GNOME?

Выход прост!

Создаём bash-скрипт и ложим его в домашний каталог пользователя, вот сюда: /.gnome2/nautilus-scripts
После чего, если щёлкнуть по zip-архиву правой кнопкой мыши, появится меню, где можно будет выбрать пункт "Сценарии" и в нём имя вашего скрипта. Архив будет правильно распакован в текущий каталог.

Вот содержимое скрипта для ALT-Linux (его имя для примера Распаковать_zip):

#!/bin/bash
IFS=$'\t\n'

for fileselect in `echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`
do
    unzip -x $fileselect;
done

После сохранения скрипта в ~/.gnome2/nautilus-scripts ему нужно дать права на выполнение

$ chmod 755 ~/.gnome2/nautilus-scripts/Распаковать_zip

Всё!


Случилось так, что после установки zip и unzip не нашлось zip-архива для проверки работоспособности разархиватора и архиватора. Чтобы больше не искать zip-архивы для теста выкладываю их здесь.

***

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


Перекодировкой будет заниматься утилита "convmv" - в репозитории Debian Lenny точно есть.
Устанавливаем её:

apt-get install convmv

Создаём два bash-скрипта для двух различных вариантов zip-архива.
Первый вариант для zip-архива созданного средствами самой Windows - zip-папка.
И второй вариант для zip-архива созданного с помощью Win-ZIP или Win-RAR.

Вот первый вариант скрипта:

#!/bin/sh
convmv -r -f cp866 -t utf8 * --notest

Вот второй вариант скрипта:

#!/bin/sh
convmv -r -f cp1252 -t cp850 * --notest
convmv -r -f cp866 -t utf8 * --notest

Теперь маленькая хитрость для рабочей среды GNOME и менеджера Nautilus.

Создаём у пользователя новый каталог с именем "Переименовать_файлы"

mkdir ~/.gnome2/nautilus-scripts/Переименовать_файлы

Сохраняем в новом каталоге два наших скрипта с именами:
после_windows - для первого и
после_win-zip_win-rar - для второго

Выставляем права созданным скриптам:

chmod 755 ~/.gnome2/nautilus-scripts/Переименовать_файлы/после_windows
chmod 755 ~/.gnome2/nautilus-scripts/Переименовать_файлы/после_win-zip_win-rar

Использование с менеджером Nautilus:

Распаковываем архив обычным способом - в среде GNOME это file-roller.

Создаём пустой каталог и перемещаем в него все файлы с "кракозябликами".

Открываем этот каталог и щёлкаем правой кнопкой мыши в любом свободном месте.
Появится контектстное меню, где и выбираем

Сценарии / Переименование_файлов / после_win-zip_win-rar

если файлы переименовались, но вместо русских имён имеем снова "кракозяблики", то удаляем все эти файлы и повторяем процедуру начиная от распаковки архива, но только применяем к распакованным файлам другой скрипт - после_windows.

-Это конечно же "костыль", но он работает!
Особенно полезен когда в zip-архиве большое количество файлов.

Данное решение опробовано в Debian Lenny - работает!
В ALT-Linux-5.0.2 Юниор и Debian Squeeze номер не прошёл!

Опубликовано: foxadmin, Автор/источник: Сакрюкин К.В. 23 Январь 2012 19:42:03

Комментировать

Вы не залогинены! Регистрация

Комментарии

Страницы: 
[10:50:24 23.04.2013] Опубликовано Константин
foxadmin
Дополнил архив пакетами для amd64. Проверил на Debian-7 Wheezy - работают.
[14:19:52 24.06.2012] Опубликовано Константин
foxadmin
Спасибо Вам, за использование моего ресурса. После отпуска продолжу развитие этого сайта. yes
[22:23:26 11.06.2012] Опубликовано Гость
No avatar
Спасибо большое за пакеты ). Debian Squeeze все съел и даже не пожаловался. Все работает как часы ). File roller выдает правильные имена файлов, в консоли все отображается верно. Скажу честно, для того, чтобы как-то решить проблему некоторое время назад даже написал собственный скрипт, но теперь надобность в нем отпала ).
Страницы: 

Афоризмы, мысли

"Что нашим врагам нравится, то нам вредно!"

/Сталин И.В./

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов5189 
Сегодня хитов5189 
Сегодня хостов719 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.33
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!