как это предлагается делать в Fossil и что на эту тему умеет git — всё фигня, по треть решения от необходимого. Нужно:
* Хранить только дифф изменившихся внутри архива файлов
* Причём без дополнительных приплясываний внутри working directory для конвертации архивноформатных файлов между хранимым и редактируемым видом
* Было бы ещё здорово, если б оно в diff могло сравнивать распакованные данные.
Есть ли в природе VCS, которые умеют адекватно работать с файлами, которые фактически являются архивами (e.g. svgz, odt). Посмотрел * Хранить только дифф изменившихся внутри архива файлов
* Причём без дополнительных приплясываний внутри working directory для конвертации архивноформатных файлов между хранимым и редактируемым видом
* Было бы ещё здорово, если б оно в diff могло сравнивать распакованные данные.
#2090404 Алсо жать раром в место православного зипа фу фу фу :/
convmv --notest -r -f cp-1252 -t cp-850 /path/to/unzipped/files
convmv --notest -r -f cp-866 -t utf-8 /path/to/unzipped/files
cp1252 -> cp850 + cp-866 -> utf8
Ото збоченці, ну!
linux.org.ru
(этот пост — резюме какого-то плохо написанного и криво свёрстанного, но всё же полезного текста отсюда: surrender-zen-way.blogspot.com )
1. Использовать non-free утилиту unrar.
2. Использовать расширение для Nautilus под названием Ailurus.
3. Исправить кодировку уже распакованных файлов с помощью convmv:
$ convmv -f cp866 -t utf8 -r --notest *
4. Поставить WinRAR под Wine.
5. В большинстве случаев с работой исправно справляется p7zip-rar.
6. Если удалить rar, то file-roller (стандартный убунтовский — или гномовский? — распаковщик) будет использовать unrar, у которого нет проблем с кодировками.
@baadoo ответил:
#!/bin/bash
##
## Unzip specified archive created under Windows and convert russian filenames
##
TMPDIR=zip.`basename $1`
unzip -d $TMPDIR $1
cd $TMPDIR
convmv -f iso8859-1 -t cp850 -r --notest --nosmart .
convmv -f cp866 -t utf8 -r --notest --nosmart .
А вообще рекомендую научиться пользоваться гуглом. Заодно узнал бы немного, почему так происходит и стал бы реже пользоваться ZIP-ом при кроссплатформенной жизни.
#1168340/11
// однострочник с iconv и mv писать лень
convmv -f latin1 -t cp850 --notest *
convmv -f cp866 -t utf8 --notest *
а) встроенные в php функции zip_*
б) вызвать exec() и распаковать имеющимся на сервере unzip'ом?
в) свой способ
Просьба аргументировать выбор...
unzip
convmv -f iso8859-1 -t cp850 -r --notest --nosmart
convmv -f cp866 -t utf8 -r --notest --nosmart
pachkov.ru Хоть какое-то решение...
Распаковка в Unix ZIP-архива созданного в Windows c восстановлением кирилический имен файлов (c помощью утилиты convmn) С бережно подобранными параметрами fcrackzip нашел 7-символьный пароль за 2 минуты.