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

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

 


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

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


Linux: как перестать удивляться, и начать работать » Lenny -> Squeeze. Что еще может отвалиться?

Линукс мне напоминает старую разваливающуюся машину, в которой время от времени отваливаются разные части, а те что остаются, держатся на подпорочках...


ПЭВМ "Микроша" » Комплект программ "Редактор и Ассемблер" для ПЭВМ "Микроша"

Часть документации на ПЭВМ "Микроша" с описанием работы текстового редактора и транслятора ассемблера. Данный комплект программ занимал 4Кб: 2Кб уходи...


Flash-анимация » Клип клуба "Сакура"

Оборудование: Pentium-200MMX, RAM 32Мб Среда: Flash MX Год: 2002   Этот клип я создавал, преследуя две цели.   Первая цель - разобраться с ...

RSS подписка

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


Ремонт и сервис электрооборудования http://www.vostok-auto.ru/.
http://acoline.ru/ решетка водоприемная spark 25 круглая пластиковая.

Внимание!

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

Доступны к просмотру следующие базы знаний:

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

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

 

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

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