Собираем
информацию
по крупицам
Статьи - Компьютерное

Linux: как перестать удивляться, и начать работать

Как распаковать RAR-архив в Linux с именами файлов в кодировке Windows
06-05-2012
08:53:03

В мире операционных систем для рабочего стола и офиса царствует Windows. С этим приходится считаться пользователям Linux. Часто возникающая задача - распаковать rar-архив, созданный в Windows.

 

При распаковке rar-архива часто возникает проблема. Если имена файлов содержат русские буквы, то распаковываемые файлы получат нечитаемые имена в сбитой кодировке. Давайте разбираться, как же распаковывать такие архивы.

 

В дистрибутивах Linux есть два вида rar-архиватора. Назовем их "старый" и "новый". Я, к сожалению, не могу точно сказать, начиная с какой версии можно считать rar "старым", а после какой - "новым". Различия в них в том, что опции, работающие в "старой" версии не работают в "новой".

 

 

"Старый" rar

 

Чтобы распоковать rar-архив с правильными именами файлов, нужно воспользоваться опцией -sc. Вот что про нее написано в помощи:

 

sc<chr>[obj] Specify the character set

 

Больше ничего. Как обозначаются кодировки, и какие кодировки поддерживаются, в помощи, в man и в документации написать забыли. Делюсь с вами сакральными знаниями:

  • u - Unicode (UTF-8)
  • a - ANSI Windows (CP1251)
  • o - OEM DOS (CP866)

 

Таким образом, чтобы распаковать rar-архив с файлами, имена которых имеют кодировку CP1251, нужно дать команду:

 

rar x -sca archive.rar

 

По всей видимости, данная опция работает в версии Rar вплоть до 2.8. В более поздних версиях эта опция присутсвует, но, по факту, при распаковке игнорируется.

 

 

"Новый" rar

 

Как было сказано ранее, в новых версия rar опция -sc не работает. Как же распаковывать проблемные архивы? Ответ: воспользоваться программой unrar версии примерно 3.9x. Эта программа каким-то волшебным образом автоопределяет кодировку имен файлов, и распаковывает с правильными именами.

 

Пример команды распаковки через unrar:

 

unrar x archive.rar

 

В дистрибутивах Linux программы rar и unrar располагаются в одноименных пакетах. Программы обычно имеют одну и ту же версию - например, в текущем Debian Stable и rar и unrar имеют номер версии 3.93. При этом rar не может правильно распаковать архив с русскоязычными файлами, а unrar может.

 

Какой же выход? Выход банален: пропагандировать пользоваться передовыми открытыми архиваторами типа 7z. В них кодировка имен файлов записывается в заголовочную информацию архива, и распаковка всегда происходит правильно.

 


К списку "Компьютерное"

Интересное на сайте


Общество » Литература пыльного века

Эту статью я писал как ответ на небольшой вопрос о литературе будущего, заданный на Хабрахабре. Здесь размещена отредактированная и дополненная версия...


Мультиплатформенные игры » Ежик-попрыгунчик. Лесная тропа.

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


Классическая анимация » Прыгающая подушка

Оборудование: Pentium-IV, Wacom Graphire3 CTE-630 Среда: Flash 8 Год: 2005   Первая и, видимо, последняя попытка нарисовать мини-мультфильм по т...

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться



О, смотри-ка какое хорошее место. Дайте два!

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Fadk

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик