Вход:  Пароль:  
FreeSource: Локализация/СитуацияСАрхиваторами ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Архиваторы в Linux


Оглавление документа

Обзор


Обмен с внешним миром для пользователей Linux невозможен без архиваторов. Проблемы совместимости должны быть сведены к минимуму.
Но, как правило, в Windows для кодирования названий файлов в архивах используется OEM-кодировка (DOS), в то время как в Linux названия записываются в кодировке файловой системы.


Нужно провести тестирование имеющихся в системе архиваторов.
Хорошее решение: Есть архиватор 7-zip, который поддерживает много форматов на упаковку и ещё больше на распаковку. Имеет модульную, единообразную структуру. Корректную работу с кодировками. Лёгкий в понимании код. Нужно его протестировать и использовать как основное средство для работы с архивами.

Главные задачи

  1. Обеспечить переносимость архивов, содержащих файлы с кириллическими именами, между OC DOS/Windows и Linux.
  2. Обеспечить переносимость архивов, созданных в Linux с различными кодировками локали.
  3. Обеспечить корректную работу графических программ (файловых менеджеров и архиваторов) в Linux с архивами.

Основой для решения предлагается библиотека NATSPEC


Что касается переносимости, то фактически на данный момент большинство архиваторов для Windows, и в том числе встроенный в Windows XP, рассматривают все архивы, вне зависимости от ОС, где они были созданы, как хранящие имена файлов в кодировке OEM. Исключениями являются Info-Zip Wiz, которые оставляют имена файлов в Linux-архивах без перекодировки (таким образом корректно отображаются кириллические Linux-архивы, созданные, например, в локали ru_RU.CP1251).


Получается, что для решения пункта No.1 надо создавать Linux-архивы в CP850/866, что в принципе не запрещено, как если бы у пользователя была установлена соответствующая кодировка локали. А что касается пункта No.2, то unzip'у остаётся только прикрутить автоугадывание кириллических кодировок для Linux-архивов, иных вариантов я не пока вижу.
(Dmitry Vukolov <dav@altlinux.org>)


zip/unzip


Формат ZIP официально поддерживает лишь имена файлов в кодировке ISO8859–1 и информацию о кодировке не предусматривает. На практике линуксовые ZIP архивы создаются в кодировке файловой системы, а DOS/Windows архивы — в кодировке OEM CP850/866/...


При распаковке архива, созданного в DOS/Win, названия файлов перекодируются из cp866 (кодировка хранения названий файлов при архивации в указанных системах) в жёстко указанную кодировку ISO***. Исправлено: см. bug # 4871


Поскольку в файлах ZIP хранится информация о том, в каких системах они созданы, предлагается перекодировать названия в кодировку файловой системы.


Windows: http://www.winzip.com/downwz.htm

tar

Ничего не знает о кодировках вообще, имеет ограничения на длину названий файлов и имён пользователей.
При выводе в консоль превращает nonlatin-символы в различные \224.

arj

Windows: http://www.arjsoftware.com/files.htm
Windows: http://arj.sourceforge.net/

rar

Windows: http://www.rarlab.com/download.htm
Проверено на unrar 3.4.3: корректно хранит названия файлов и выдаёт их в кодировке локали на экран и в файловую систему.

tar

Windows: http://www.7-zip.org/download.html

7zip

Windows: http://www.7-zip.org/download.html
Проверено на p7zip Version 4.20 (locale=ru_RU.KOI8-R,Utf 16?=on,Huge Files?=on)
В архивах названия файлов хранятся в UTF16 и перекодируются в кодировку локали.

Ark

Андрей Черепанов: Никак не доходят руки исправить баг #44047 (явное указание кодировки имён файлов).


Страницы, ссылающиеся на данную: TZ/LinuxDesktop/НедостаткиLinux
Локализация/КодировкаНазванийФайлов
Локализация/НациональнаяСпецификаСистемы



 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]