The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Работа с русскими именами файлов в ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Раздел полезных советов: Работа с русскими именами файлов в ..." +/
Сообщение от Ю.Т. (?), 15-Дек-12, 13:37 
> Одна из неожиданных проблем, возникающих при обмене файлами с пользователями Windows -
> странное поведение ZIP-архивов. Казалось бы, достаточно правильно настроить кодировки...
> Не тут-то было!

...

Да, это полезный совет. Всё верно. Пока существуют винды и WinZip и InfoZip, придётся иметь дело с архивами, из которых файлы на юниксах будут извлекаться с искорёженными названиями.

Но! Описанное решение проблемы, по-моему, не лучше самой проблемы, имея в виду его собственную сложность и трудоёмкость поддержки. Я то же самое давно решаю несколько иначе и, мне кажется, удобнее. Правда, я ничего не делал с zip-ом.

Что же сделано? Во-первых, исключены все переделки кодировок в процедурах вывода unzip -- в трёх местах (два в fileio.c и одно, кажется, в list.c) три вызова спрятаны под комментарий. Эти места легко отыскиваются во всех версиях unzip от 5-й до 6-й, и вполне просто переделываются. Во-вторых, пересобранный unzip называется, скажем, unzip0, и укладывается хоть бы и в ~/bin. В-третьих, немного дорабатываются скрипты работы с "файловой системой UZIP" из состава midnight commander (т.е., открытие архивов как обычных каталогов). В них: (а) меняются вызовы unzip на unzip0; (б) добавляется перекодировка получаемого списка названий с помощью iconv (этот тул давно присутствует во всех линуксах из коробки, и даже в freebsd без него не обходятся); (в) изменённые скрипты (их можно сделать несколько, для разных кодировок исходного архива) укладываются в ~/.mc/ или ~/.config/mc (зависит от версии mc). После этого можно в коммандере, как обычно, открывать архивы как каталоги, работать с файлами и т.д.

Достоинства изложенного здесь решения: 1) делается просто 2) даёт удобный инструмент 3) не требует целовать никаких разработчиков ни в какие места 4) сохраняет работоспособность при сменах дистрибутива и даже, с очевидными мелкими доработками, при сменах системы в пределах юниксов. Наконец, оно оставляет возможность выбора окончательного решения за человеком, как самым лучшим опознавателем кодировок. :)

Недостатки изложенного здесь решения: 1) влияет лишь на один инструмент (mc) и не влияет на unzip общесистемной доступности 2) требует кой-каких дополнительных движений в mc (active VFS list->Free VFSs now и что-то вроде cd abc.zip#uzipu), если кодировка в архиве была не предугаданной (не той, с которой работает доработанный mc-ский скрипт для uzip).


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Раздел полезных советов: Работа с русскими именами файлов в ..., auto_tips, 30-Ноя-10, 23:16  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру