Русские заголовки внутри архивов под ОС WinXP (Как создавать под Lin zip-архивы с русскими заголовками, читаемыми в W)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
T-34
Сообщения: 18

Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

Всем доброго!

Вот, назрел вопрос (см. тему). Перекопал я Интернет, датак и не нашел ответа. Хотя проблема-то буквально на поверхности лежит.

В WinXP по умолчанию встроен архиватор ZIP.
Как запаковать из Linux'а, под локалью UTF-8, архив ZIP таким образом, чтобы при распаковке этого архива в ОС WinXP
встроенными средствами WinXP (то есть без использования
какого-либо дополнительного ПО) русские названия файлов отображались
корректно?

Аналогичную проблему в направлении Win => Lin я решил с помощью convmv и
доброго совета отсюда:
http://www.dvgu.ru/forum/thread.php?postid=41752#post41752

А вот направление Lin=>Win у меня ну никак не идет :(

Варианты с другими архиваторами не подходят - эти архивы должны открывать под XP
абсолютные чайники в разных городах, которых вообще с трудом и из-под палки научили тыкать
кнопкой мыши в файл.
Любое дополнительное ПО или пугающее получателей расширение файла способно
вызвать сбой в деятельности.

Т.о. годится только кондовый ZIP, прямо встроенный в XP.
Есть, конечно, варианты: использовать wine или какую-нибудь виртуальную машину
(Win4Lin, VMWare...).
Но очень хочется все-таки найти более линуксовый путь. ;)

Помогите, пожалуйста, конкретным объяснением или ткните в конкретную ссылку.
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение arkhnchul »

T-34
запустить из-под лина какой-нибудь ВинЗип или ВинРар и в нем паковать.
Losing is fun!
Спасибо сказали:
Аватара пользователя
aeroslav
Сообщения: 208

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение aeroslav »

(Arkhnchul @ Jan 18 2007, в 15:41) писал(а):запустить из-под лина какой-нибудь ВинЗип или ВинРар и в нем паковать.


А поможет, если локаль не cp-1251?
Registered Linux User #442290
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

Arkhnchul писал(а):
18.01.2007 16:43
T-34
запустить из-под лина какой-нибудь ВинЗип или ВинРар и в нем паковать.
Спасибо, но о wine я писал выше. Мне нужен ответ, как достичь обозначенной цели средствами исключительно Linux'а, без использования эмуляторов.
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
MadDog
Бывший модератор
Сообщения: 2298
Статус: Добрый банщик

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение MadDog »

Зачем Вайн?
Если название архива и документа не обязательно должно быть на русском, то man zip. Если же название документов на русском, то просто перепишите приведённый в вашей скрипт, т.е. перекодировать из UTF в CP1251.

Проверить на работе не успел, должно работать. Надо будет завтра попробовать.
MadDog's Blog
Внимательно читать: Как правильно задавать вопросы
No fate but what we make
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

MadDog писал(а):
18.01.2007 17:58
Если же название документов на русском, то просто перепишите приведённый в вашей скрипт, т.е. перекодировать из UTF в CP1251.
Это, само собой, пробовал с помощью convmv. Не получается.
Здесь:
http://www.freesource.info/wiki/Lokalizaci...aSArxivatoramiя
высказано мнение, что zip пакует в кодировке локали.
Получается, что перекодированное название он снова при упаковке загоняет в UTF-8?

Кроме того, заголовки файлов разве имеют отношение к cp1251, а не к cp866?
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение arkhnchul »

aeroslav
А поможет, если локаль не cp-1251?

а фиг его знает. С открытием архивов с козюбриками вместо русских имен помогает иногда.
Losing is fun!
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение Portnov »

Эх, времени нет поэкспериментировать...
Но уж вам интересно - вы попробуйте. Ежели zip пакует имена в кодировке локали, то поможет что-то типа

Код: Выделить всё

export LC_ALL=ru_RU.CP1251 zip .....

Если в том виде в каком они на диске - значит, надо сначала файлы переименовать, все тем же convmv.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение Skull »

Portnov писал(а):
18.01.2007 22:57
Эх, времени нет поэкспериментировать...
Но уж вам интересно - вы попробуйте. Ежели zip пакует имена в кодировке локали, то поможет что-то типа

Код: Выделить всё

export LC_ALL=ru_RU.CP1251 zip .....

Если в том виде в каком они на диске - значит, надо сначала файлы переименовать, все тем же convmv.
Вы точно уверены, что на cp866?
Skull
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

Portnov писал(а):
18.01.2007 22:57
Ежели zip пакует имена в кодировке локали, то поможет что-то типа

Код: Выделить всё

export LC_ALL=ru_RU.CP1251 zip .....
Не вызодит каменный цветок:

Код: Выделить всё

[ktoto@localhost 00]$ export LC_ALL=ru_RU.1251
[ktoto@localhost 00]$ convmv -f utf8 -t cp1251 --notest Календарь.doc
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "ru_RU.UTF-8:ru",
        LC_ALL = "ru_RU.1251",
        LC_PAPER = "ru_RU.UTF-8",
        LC_ADDRESS = "ru_RU.UTF-8",
        LC_MONETARY = "ru_RU.UTF-8",
        LC_SOURCED = "1",
        LC_NUMERIC = "ru_RU.UTF-8",
        LC_TELEPHONE = "ru_RU.UTF-8",
        LC_MESSAGES = "ru_RU.UTF-8",
        LC_COLLATE = "ru_RU.UTF-8",
        LC_IDENTIFICATION = "ru_RU.UTF-8",
        LC_MEASUREMENT = "ru_RU.UTF-8",
        LC_CTYPE = "ru_RU.UTF-8",
        LC_TIME = "ru_RU.UTF-8",
        LC_NAME = "ru_RU.UTF-8",
        LANG = "ru_RU.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
mv "./Календарь.doc"    "./����.doc"
Ready!
[ktoto@localhost 00]$


Вроде, файл во что-то перекодировался. Теоретически, под локалью CP1251 его имя должно быть корректно отображено. Однако, при запуске еще одной консоли видим:

Код: Выделить всё

[ktoto@localhost ~]$ export LC_ALL=ru_RU.1251
[ktoto@localhost ~]$ mc
[ktoto@localhost 00]$ ls
?????????.doc*
[ktoto@localhost 00]$
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение cheer »

гы, а что такое ru_RU.1251? cp забыто...
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

cheer писал(а):
20.01.2007 11:35
гы, а что такое ru_RU.1251? cp забыто...
Упс! :ohmy:

Это, вроде бы, не сильно влияет на результат:

Код: Выделить всё

[ktoto@localhost 00]$ export LC_ALL=ru_RU.CP1251
[ktoto@localhost 00]$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_PAPER="ru_RU.CP1251"
LC_NAME="ru_RU.CP1251"
LC_ADDRESS="ru_RU.CP1251"
LC_TELEPHONE="ru_RU.CP1251"
LC_MEASUREMENT="ru_RU.CP1251"
LC_IDENTIFICATION="ru_RU.CP1251"
LC_ALL=ru_RU.CP1251
[ktoto@localhost 00]$ convmv -f utf8 -t CP1251 --notest Календарь.doc
mv "./Календарь.doc"    "./����.doc"
Ready!
[ktoto@localhost 00]$


И в новой консоли:

Код: Выделить всё

[ktoto@localhost ~]$ export LC_ALL=ru_RU.cp1251
[ktoto@localhost ~]$ cd Temp
[ktoto@localhost Temp]$ cd 00
[ktoto@localhost 00]$ ls
����.doc*
[ktoto@localhost 00]$


М.б. я опять чего перепутал?
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение sash-kan »

(T-34 @ Jan 20 2007, в 13:07) писал(а):М.б. я опять чего перепутал?
да пожалуй что ничего.
правда, что-то странно получается…
просто LANG=ru_RU.cp1251 ls действительно показывает as is.
а вот LANG=ru_RU.cp1251 luit ls все показывает как требуется.

а ведь вроде бы когда-то работало и в первом варианте… или я чего-то путаю?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение sash-kan »

(T-34 @ Jan 18 2007, в 15:27) писал(а):А вот направление Lin=>Win у меня ну никак не идет
протестировал:
с помощью convmv перекодировал из utf8 в cp866, запаковал zip-ом, открыл в винде winrar-ом — русские имена файлов в порядке.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение arkhnchul »

автор просит открывать не винраром, а оффтопиковской приблудой, открывающей зипы в проводнике.
Losing is fun!
Спасибо сказали:
Аватара пользователя
phoen1x
Сообщения: 140
ОС: Slackware 12.1

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение phoen1x »

2T-34:
попробуйте тоже самое, только вместо ср1251 ипсользуйте ср866, т.к. в венде для нормального отображения русских букв в именах файлов используется данная кодировка
In trance we trust
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение yros »

Arkhnchul писал(а):
03.02.2007 15:54
автор просит открывать не винраром, а оффтопиковской приблудой, открывающей зипы в проводнике.
Специально проверил, после convmv -f utf8 -t cp866 * --notest нормально открывает без каких-либо установленных архиваторов. Тот же каталог но сжатый до convmv - иероглифы.
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

ОК, нашились добрые люди, наставили на путь! :D
Теперь все работает, как часы.
Написал, дабы лепту внести, несколько полезных скриптов. Кое-где решения не изящны, но... короче, оно работает - это пока для меня главное.
Теперь в konqueror'e или krusader'e шмяк правой кнопкой по файлу, "Открыть в...", выбираю скрипт - и все рвботает.

Скрипты засунуты в архив, архив прицеплен - забирайте, если кому понравится. Надеюсь, функции скриптов понятны из имен файлов.
Конструктивная критика приветствуется ;)
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
phoen1x
Сообщения: 140
ОС: Slackware 12.1

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение phoen1x »

так а например нельзя было бы поставить в линуксе винрар, татм запаковать русские файлы в зип (он же это умеет вроде :) ) а потом в венде попробовать открыть это
In trance we trust
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение yros »

phoen1x писал(а):
03.02.2007 23:49
так а например нельзя было бы поставить в линуксе винрар, татм запаковать русские файлы в зип (он же это умеет вроде :) ) а потом в венде попробовать открыть это
T-34 писал(а):
18.01.2007 16:59
Arkhnchul писал(а):
18.01.2007 16:43
T-34
запустить из-под лина какой-нибудь ВинЗип или ВинРар и в нем паковать.
Спасибо, но о wine я писал выше. Мне нужен ответ, как достичь обозначенной цели средствами исключительно Linux'а, без использования эмуляторов.
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
phoen1x
Сообщения: 140
ОС: Slackware 12.1

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение phoen1x »

ммм.. а причем тут вайн вобще? :huh: вроде винрар итак есть под линукс
In trance we trust
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение yros »

Так он коммерческий. Я неправильно понял - подумал что виндовый в wine.
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
T-34
Сообщения: 18

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение T-34 »

phoen1x писал(а):
04.02.2007 12:05
вроде винрар итак есть под линукс
Не просто Rar, а именно Winrar под Linux, то есть без эмуляторов и с GUI??? :blush:
Покажите, пожалуйста, где Вы его нашли! Хочу такое чудо!!! :D
OS: Mandriva 2008 Spring
MB: ASUS A7N8X-E Deluxe
GrCard: NVIDIA GeForce FX 5200
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение yros »

Увы... Без емулятора но и без GUI. http://www.rarlab.com/ Да и с zip он похоже работать не хочет (во всяком случае у меня не получилось).
И если так нужен винрар с GUI, то почему все же wine не использовать? Нормально ведь работает. А то "...средствами исключительно Linux'а..." и GUI как то не очень между собой совпадает, Linux то в первую очередь консоль, а во вторую GUI.
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
DFM
Сообщения: 118
ОС: Kubuntu 8.10 x64 kde4.2

Re: Русские заголовки внутри архивов под ОС WinXP

Сообщение DFM »

товарищи, у ково был скрипт от T-34, выложите его снова пожалуйста, а то очень хочеться адаптировать систему окончательно :)
Спасибо сказали: