Jump to content
Калькуляторы

Архиватор + указание кодировки

Есть NAS, подключённый к серверу, на котором храняться рабочие папки юзеров. С помощью сервера делается бэкап (tar+bzip2) папок. Юзеры все виндовые. Пока всё нормально (если нужно достать из бэкапа что-то, распаковываем на сервере и ложим в нужную папку), но юзерам почему-то понадобилось очень часто распаковывать архивы и доставать файлы из бэкапа. Было выдвинуто быстрое решение - положить эту задачу на самих юзеров. Как итог, юзер себе качает архив бэкапа и начинает распаковывать. Имена файлов естественно битые, так как кодировки не совпадают.

Пробовал использовать 7zip(ругается на параметр -scs через который можно указать кодирова - перепробовал 100500 разных вариантов использования параметра) rar (только в Windows-версии можно задать кодировку)

 

Пока есть 2 варианта решения:

1) искать возможность при архивации конвертировать имена файлов в CP1251

2) менять кодировку на самом NAS'e (там урезанный линукс, доступ есть)

3) как-то налету используя convmv отдавать tar'y уже имена файлов (но думаю это нереально) в CP1251

 

Пока склоняюсь к п1, но если ничего не найду - придёться разбираться в п2.

 

Может у кого-то есть какие-то идеи по этому поводу? Или может есть ещё варианты решить эту задачу?

 

ОС FreeBSD 8.2, locale - UTF8 (спецом, что бы нормально виделись имена файлов через сервер)

Share this post


Link to post
Share on other sites

7z пишет кодировку, поэтому потом на винде распаковывается без проблем. В вашем случае скорее всего бэкап запускается из крона, а там совсем другое переменное окружение. Поставьте в кроне /usr/bin/env >/tmp/log.env и посмотрите чем отличается от "обычного" env

Share this post


Link to post
Share on other sites

Запускаю из консоли, где кодировка UTF-8 (locale LC_ALL = UTF-8)

У меня 7z ругается на неправильный параметр, когда я пробую указать кодировку. Пробовал по разному:

7z a a.7z @file.list -scsWIN
7z a -scsWIN a.7z @file.list 

всё равно ругается на неправильный параметр.

Share this post


Link to post
Share on other sites

`convmv -f/-t | tar/bzip/7z` (п.3), ну или `find blah | iconv -f/-t | tar/bzip/7z` не?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this