Собираем
информацию
по крупицам

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. В них кодировка имен файлов записывается в заголовочную информацию архива, и распаковка всегда происходит правильно.

 


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

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


Перевод документации Ext JS 4.2 » Ext JS 4.2. Часть 1: Введение

Здесь расположен мой авторский перевод официальной документации фреймверка Ext JS v.4.2 на русский язык. Для перевода были выбраны основные стать...


Игры под DOS » Twins (Близнецы)

Игра написана с использованием компилятора Borland Pascal 7. Смысл игры - открыть все ячейки на игровом поле. Ячейки остаются открытыми только в том ...


Демо на языке C » KSI Demo

Требования: Windows 95/98/XP или Linux Год: 2004   Пробная демка под Linux, сделанная с помощью мультиплатформенной библиотеки SDL. За основу вз...

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

 

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

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

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

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