LinuxForum.Fans
Тема

Некорректное отображение имён файлов в архивах, созданных в Windows

Автор: Erra 60 сообщений 12155 просмотров
#235029

тоже проблема с завучем и с *.rtf )))))) Министерство часто кидает на почту архивы с rtf-ными файлами. Так вот, качаешь архив, открываешь, а там вместо названия фалов стоит что-то вроде ?????? ??? ?????.rtf . И не открывает соответственно. Че делать? поставить привычный софт - не вариант, т.к. насильно в принципе и пересадили на линукс и ОО.

#235047

Erra,

Erra написал:
архивы с rtf-ными файлами. Так вот, качаешь архив, открываешь, а там вместо названия фалов стоит что-то вроде ??????  ??? ?????.rtf .

Имена файлов хранятся в оглавлении архива, а архивы, предположу, zip. Виновник -- архиватор. Для решения проблемы использовать или патченый unzip, или convmv. Для rar поставить unrar от Рошаля, он бесплатный, хоть и не свободный.

#235051
Erra написал:
Так вот, качаешь архив, открываешь

чем качаешь, чем открываешь?

#235098

качаю громко сказано. просто "сохранить все" в фаерфоксе (так видите ли у меня юзер привыкла делать..). Он сам архивом сохраняет.. А так, переустанавливала недавно систему с винды на линукс и остались архивные папки. вот некоторые из них, в которых rtf-ки вот так и открываются..

#235099

Erra,
Скачайте для примера новаяпапка2zip
Посмотрим Будут ли кракозябры.

#235106

Erra,
И покажите вывод:
[console]$ unzip Новаяпапка2.zip[/console]

з.ы. или из своих неудачных архивов.

#235327

угу. уже сразу вижу, что скачались кракозябры) щас вывод кину

Показать
[console][erra@localhost ~]$ unzip /home/erra/Загрузки/Новаяпапка2.zip
Archive: /home/erra/Загрузки/Новаяпапка2.zip
creating: ????? ?????2/????? ????? (2)/
extracting: ????? ?????2/????? ????? (2)/????????? ???????? (2).txt
extracting: ????? ?????2/????? ????? (2)/????????? ????????.txt
creating: ????? ?????2/????? ????? (3)/
creating: ????? ?????2/????? ?????/
extracting: ????? ?????2/????? ?????/????????? ???????? (2).txt
extracting: ????? ?????2/????? ?????/????????? ????????.txt
[/console]
#235413

Erra,
Сделать так:
[console]su
urpmi p7zip enca[/console]
Потом проверка из сообщения выше.

#235506

Slackware-13.37, infozip пересобран с патчами из этой статьи: http://www.opennet.ru/tips/info/2494.shtml

[console]
$ unzip -l Новаяпапка2.zip
Archive: Новаяпапка2.zip
Length Date Time Name
--------- ---------- ----- ----
0 11-25-2010 15:18 Новая папка2/Новая папка (2)/
0 11-25-2010 15:18 Новая папка2/Новая папка (2)/Текстовый документ (2).txt
0 11-25-2010 15:18 Новая папка2/Новая папка (2)/Текстовый документ.txt
0 11-25-2010 15:17 Новая папка2/Новая папка (3)/
0 11-25-2010 15:17 Новая папка2/Новая папка/
0 11-25-2010 15:17 Новая папка2/Новая папка/Текстовый документ (2).txt
0 11-25-2010 15:17 Новая папка2/Новая папка/Текстовый документ.txt
--------- -------
0 7 files
[/console]

#235508

Если понадобится ссылка на патченный файл подходящий для магеи, то обязательно дам. А пока подождём ответа.
Скорее всего придется пересобирать или ставить напрямую с мандривы, где этих проблем нет, а совместимость с магеей есть.

#235528

Вы мне только сразу пишите смысл действий. чтобы я не тупо команды выполняла, а понимала, что делаю.. Я так понимаю этим я поставлю другой архиватор? Завтра попробую на работе. А завуч-таки забирает свой старый дохлый комп с виндой и отдает новый но с линуксом. Расцениваю как личное поражение :( . Но и полтергейст какой-то.. Прибегает: не печатаются границы в таблицах. Сажусь. печатаю тотже док, стого же компа на тот же принтер - все нормуль! ну и периодически такая же петрушка.. Послать на операцию по вставке рук обратно в плечи??? И ведь не переубежу, что не в линуксе дло! Кстати, пойду в еще одну темку с вопросом. по Самбе.

#236901

сделала. но.. в прошлый раз когда разархивировала в консоли, у меня создалась папка с названием примерно таким ???? ?????.. А теперь при попытке удалить этот файл в корзину пишет: Файл или папка /home/erra/????? ?????2 не существует. И при повторной попытки разархивации вылазит вот что (пакет предложенный установила)

Показать
[console][root@localhost erra]# unzip /home/erra/Загрузки/Новаяпапка2.zip
Archive: /home/erra/Загрузки/Новаяпапка2.zip
replace ????? ?????2/????? ????? (2)/????????? ???????? (2).txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
extracting: ????? ?????2/????? ????? (2)/????????? ???????? (2).txt
[/console]

Я так понимаю, он просит переименовать существующий файл или что?
Когда открываю архив в графическом режиме двумя кликами, он открывается. вопросиков нет, то текстовые файлы в названии теперь имеют квадратики вместо вопросов

#236968
Erra написал:
Я так понимаю, он просит переименовать существующий файл или что?

переписать/не переписовать/переписать всё/ничего не делать/переименовать. Вы выбрали "переписать".

Erra написал:
Когда открываю архив в графическом режиме двумя кликами, он открывается. вопросиков нет, то текстовые файлы в названии теперь имеют квадратики вместо вопросов

проблема в том, что Windows сохраняет имена файлов не в той кодировке. А именно в устаревшей cp1251. Например число 255 в ней означает букву "я", но сейчас в Linux используют кодировку UTF-8, где каждая русская буква занимает два байта.
Я могу предложить вам простое решение, оно не Ъ, но я сам его использовал. Надеюсь братья-сектанты не предадут меня анафеме :o
Итак: Идём на http://www.win-rar.ru/ и качаем последний WinRAR. Устанавливаем его в Wine. Используем. Использовать можно 40 дней, а потом вроде как нельзя, но он всё равно работает ;)

#236992
drBatty написал:
проблема в том, что Windows сохраняет имена файлов не в той кодировке. А именно в устаревшей cp1251.

Любая проблема имеет простые, понятные, неправильные объяснения ;-) Посыл верный -- неправильная кодировка, но дьявол, как всегда, в деталях. Вот тут подробнее http://www.opennet.ru/tips/info/2494.shtml, извините, что повоторяюсь, пересказывать не буду.

Ах да, вторая проблема в том, что по-умолчанию "unzip -l" "фильтрует базар", и все символы за пределами семибитного ASCII, куда попадает и кириллица, заменяет на знак "?", тот самый с кодом 3f(16). Поэтому получить от "unzip -l" список, попытавшись перекодировать вывод с помощью iconv, enca и т.п., не удастся.
Для изменения поведения unzip есть патчи (мне известны два принципиально разных). Те дистрибутивы, где unzip собран с их применением, либо те админы локалхоста, которые сами собрали ПО с применением правильных заплаток, могут похвастать результатом как в этом сообщении http://linuxforum.ru/viewtopic.php?pid=257389#p257389 wink

#236997

Erra,
Cделайте так:

text
# rpm -e --nodeps unzip
# wget -P /tmp/ http://mib.pianetalinux.org/MIB/2010.2/32/basic/unzip-6.0-69.1mib2010.1.i686.rpm
# rpm -Uvh --force --nodeps /tmp/unzip-6.0-69.1mib2010.1.i686.rpm
# echo /^unzip/ >> /etc/urpmi/skip.list
#236998

bormant, ну я-то это и так знаю. Вот только не думаю, что это кому-то поможет. В отличие от WinRAR'а, который правильно всё раскодирует (ЕМНИП).

#237164

без изменений.. Наверно остается вариант дока.. но тут мне стыдно признаться. ни разу не юзала wine(( но что ж.. все когда-то в первый раз..

#237169

Erra,
Для верности перезагрузитесь и проверьте еще разок. smile


Этот пакет ещё проверьте:

text
# rpm -e --nodeps unzip
# wget -P /tmp/ ftp://ftp.mandriva.ru/EduMandriva/educontrib/2010.1/i586/free/release/unzip-6.0-10edm2010.1.i586.rpm
# rpm -Uvh --force --nodeps /tmp/unzip-6.0-10edm2010.1.i586.rpm

И перезагрузиться.

#237189

Ftp закрыт у меня

#237190
Показать
[console][erra@localhost ~]$ unzip /home/erra/Загрузки/НП2.zip
unzip: error while loading shared libraries: libnatspec.so.0: cannot open shared object file: No such file or directory
[/console]

вот че..

Войдите или зарегистрируйтесь, чтобы ответить.