Страница 1 из 1

zip и русские имена

Добавлено: 2016-08-16 17:10:14
icb
Как распаковать zip с русскими именами файлов (и каталогов) созданный под Windows 7?

zip и русские имена

Добавлено: 2016-08-16 18:08:51
guest
icb писал(а):Как распаковать zip с русскими именами файлов (и каталогов) созданный под Windows 7?
- дохтур, у мине эта...

- OS?
- чем создавался zip?

В общем случае: unzip собранный с iconv или p7zip
В 10.x/UTF-8 с p7zip никаких проблем не наблюдалось : FreeBSD <-> Windows N

ps. Правильный подход в настройке Windows -> максимально заменить все что можно на Free, в
том числе и WinZip/WinRar...

zip и русские имена

Добавлено: 2016-08-17 9:55:11
icb
undefined писал(а): - OS?
- чем создавался zip?
У меня FreeBSD 10.2, записанные русские имена через SAMBA вижу нормально (в rc.conf про utf ничего не писал, но LC_ALL выдает en_US.UTF-8).
zip создан под Windows 7 либо стандартными средствами, либо из TotalCommander.

Попробовал p7zip - не создает корректных имен :(

zip и русские имена

Добавлено: 2016-08-17 12:58:34
icb
Временно решил проблему так: unzip и потом convmv --notest -r -f CP866 -t UTF8 .
Но делать так каждый раз при получении архива - дикое извращение.
Да и несколько файлов не преобразовались, хотя на виндовой машине они видны нормально.

Куда еще копнуть?

zip и русские имена

Добавлено: 2016-08-17 17:02:48
guest
icb писал(а):
undefined писал(а): - OS?
- чем создавался zip?
У меня FreeBSD 10.2, записанные русские имена через SAMBA вижу нормально (в rc.conf про utf ничего не писал, но LC_ALL выдает en_US.UTF-8).
zip создан под Windows 7 либо стандартными средствами, либо из TotalCommander.
какие стандартные средства Windows создают ZIP архив?
Попробовал p7zip - не создает корректных имен :(
10.x с ru_RU.UTF-8 + p7z из портов и Windows X с p7zip - специально тестировались на
работу с locale, как и остальные WinRAR/WinZip под Windoze и unzip/rar/unrar под FreeBSD

ps. Samba имеет механизм encoding'а, Вы определитесь что, где, чем и как создаете и соответственно чем
разворачиваете:
- Windoze -> кодировка cp866 или cp1251 или utf-8
- FreeBSD -> locale

zip и русские имена

Добавлено: 2016-08-17 18:05:08
FiL
какие стандартные средства Windows создают ZIP архив?
right click -> Send to -> Compressed (zipped) folder.
стандартнее не бывает

zip и русские имена

Добавлено: 2016-08-17 18:54:13
guest
FiL писал(а):
какие стандартные средства Windows создают ZIP архив?
right click -> Send to -> Compressed (zipped) folder.
стандартнее не бывает
вот подобные "стандартные" zip архивы и создаются Windoze через одно место.

zip и русские имена

Добавлено: 2016-08-17 18:58:42
FiL
нормально создаются... вполне в соответствии со спецификацией зипа.

zip и русские имена

Добавлено: 2016-08-17 20:18:22
ev
icb писал(а): Да и несколько файлов не преобразовались, хотя на виндовой машине они видны нормально.
если операция проводится только над файлами из архива полученного из одного места, то можно convmv использовать с опцией --nosmart

zip и русские имена

Добавлено: 2016-08-18 9:55:50
icb
undefined писал(а):
10.x с ru_RU.UTF-8 + p7z из портов и Windows X с p7zip - специально тестировались на
работу с locale, как и остальные WinRAR/WinZip под Windoze и unzip/rar/unrar под FreeBSD
Судя по всему p7zip работает с локалью криво.
Пробовал указывать кодировки через опции scc и scs - не помогает.
Причем создает файлы в UTF8, но с кривой кодировкой - конвертация через convmv уже не помогает (сробовал CP866 и CP1251).

zip и русские имена

Добавлено: 2016-08-18 10:30:20
guest
icb писал(а):
undefined писал(а):
10.x с ru_RU.UTF-8 + p7z из портов и Windows X с p7zip - специально тестировались на
работу с locale, как и остальные WinRAR/WinZip под Windoze и unzip/rar/unrar под FreeBSD
Судя по всему p7zip работает с локалью криво.
Пробовал указывать кодировки через опции scc и scs - не помогает.
Причем создает файлы в UTF8, но с кривой кодировкой - конвертация через convmv уже не помогает (сробовал CP866 и CP1251).
может кто-то не умеет настраивать Locale?

7z.exe в Windows создает архивы .7z с которыми 7z в FreeBSD работает без проблем
Встроенный zip от Windows 7 - без проблем раскрывается unzip собранным из портов
с ICONV/Russian = on

Все верхнее в очередной раз проверено под FreeBSD 10.x с ru_RU.UTF-8.

zip и русские имена

Добавлено: 2016-08-18 10:58:49
icb
undefined писал(а): 7z.exe в Windows создает архивы .7z с которыми 7z в FreeBSD работает без проблем
Возможно. Но надо распаковать именно zip.
undefined писал(а): Встроенный zip от Windows 7 - без проблем раскрывается unzip собранным из портов
с ICONV/Russian = on
Верю. Так же видел гуляющий патч для unzip.
Но есть только пакеты (unzip, 7z).
undefined писал(а): Все верхнее в очередной раз проверено под FreeBSD 10.x с ru_RU.UTF-8.
Почему именно ru_RU.UTF-8? По идее любая UTF-8 должна работать.
Можно конечно брать дефолт и пытаться угадать что пользователь хочет по locale, но должна же быть возможность указать кодировку для архива. Или для использования разных кодировок надо менять локаль? Не очень хорошее решение мягко говоря.

zip и русские имена

Добавлено: 2016-08-18 13:36:40
guest
icb писал(а):
undefined писал(а): 7z.exe в Windows создает архивы .7z с которыми 7z в FreeBSD работает без проблем
Возможно. Но надо распаковать именно zip.
а разве 7z не поддерживает zip?
undefined писал(а): Встроенный zip от Windows 7 - без проблем раскрывается unzip собранным из портов
с ICONV/Russian = on
Верю. Так же видел гуляющий патч для unzip.
Но есть только пакеты (unzip, 7z).
это Ваши проблемы, а кодировка - проблемы Info-Zip, которая выложила кривой unzip 6.0.
А поддержка iconv и russian в unzip - это достижения Unix сообщества по исправлению
проблем.
undefined писал(а): Все верхнее в очередной раз проверено под FreeBSD 10.x с ru_RU.UTF-8.
Почему именно ru_RU.UTF-8? По идее любая UTF-8 должна работать.
Можно конечно брать дефолт и пытаться угадать что пользователь хочет по locale, но должна же быть возможность указать кодировку для архива. Или для использования разных кодировок надо менять локаль? Не очень хорошее решение мягко говоря.
Думаю, Вы не понимаете настройку locale.

UTF-8 - стандарт представления, когда Вы загружаете ОС:
linux или freebsd
- используете драйвер консоли - так?
- за счет чего драйвер консоли позволяет отображать utf8? (framebuffer vga в графическом режиме)
- что позволяет отображать символы? фонт?
- фонтов utf-8 много, все содержат кириллицу?

Так за счет чего Вы хотите увидеть кириллические символы в FreeBSD и где?
- в консоли?
- в удаленной терминалке?
- локально в X11 ?
- в remote x-apps?

zip и русские имена

Добавлено: 2016-08-18 14:27:11
icb
undefined писал(а): а разве 7z не поддерживает zip?
Так разговор же был об архивах .7z, а не про архиватор 7z.
7z поддерживает zip
.7z не является .zip архивом
undefined писал(а): А поддержка iconv и russian в unzip - это достижения Unix сообщества по исправлению
проблем.
Они безусловно молодцы. Но оптимальнее было бы добавить возможность указания кодировки при распаковке. Надеюсь товарищи реализуют подобный функционал.
undefined писал(а): Так за счет чего Вы хотите увидеть кириллические символы в FreeBSD и где?
- в консоли?
- в удаленной терминалке?
- локально в X11 ?
- в remote x-apps?
Хочу увидеть кирилицу везде :)
Понятно что в локальной консоли сервера я ее не увижу (шрифты не подгружал).
Но вот во всех других местах по идее должен видеть (с подгруженными шрифтами), да и собственно вижу:
- захожу через ssh и вижу нормально русские имена файлов созданные собой же, сам могу писать по русски (сижу под FreeBSD)
- самба пишет русские имена файлов, которые я вижу по ssh
- самба показывает виндовым клиентам русские имена файлов созданные мной по ssh

Т.е. нормально работает UTF-8.
Вот только 7z не создает русских имен. У меня малость отличается локаль, но это значит что 7z автоматом не правильно понял что мне надо. Не беда. Для этого и должны быть параметры. Но вот то, что я не могу в параметрах управлять кодировкой - вот это получается беда. Как ее исправить пока не понятно.

zip и русские имена

Добавлено: 2016-08-18 17:55:40
guest
icb писал(а):
undefined писал(а): а разве 7z не поддерживает zip?
Так разговор же был об архивах .7z, а не про архиватор 7z.
7z поддерживает zip
.7z не является .zip архивом
было предложено ОТКАЗАТЬСЯ от zip и использовать 7z, или можно gzip/bzip/tar for Windows.
В ином случае - собирать unzip из портов с iconv+russian

7z - поддерживает несколько видов архивов, в том числе и zip, опция -tzip, НО, использует
ровно тот же алгоритм что и unzip и с теми же граблями.
undefined писал(а): А поддержка iconv и russian в unzip - это достижения Unix сообщества по исправлению
проблем.
Они безусловно молодцы. Но оптимальнее было бы добавить возможность указания кодировки при распаковке. Надеюсь товарищи реализуют подобный функционал.
это предложение Zip-Info? Они уже показали реализацию собственного творения под Unix.
Судя по всему, Unix сообществу до одного места zip с unzip, посему, спасение утопающих...
undefined писал(а): Вот только 7z не создает русских имен. У меня малость отличается локаль, но это значит что 7z автоматом не правильно понял что мне надо. Не беда. Для этого и должны быть параметры. Но вот то, что я не могу в параметрах управлять кодировкой - вот это получается беда. Как ее исправить пока не понятно.
никак, если задание charset не предусмотрено и используется определение locale.
Посему, UTF-8 лучший вариант, если сам архиватор реализован НЕ КРИВО.

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

[myhost]~ > cd /tmp
[myhost]/tmp > uname -rsm
FreeBSD 10.3-RELEASE-p2 amd64
[myhost]/tmp > echo $LANG
ru_RU.UTF-8
[myhost]/tmp > ls -la | grep [А-я]*
drwxr-xr-x   5 root     wheel            512 18 авг 15:58 Новая папка
[myhost]/tmp > ls -la Новая\ папка/
total 24
drwxr-xr-x   5 root  wheel   512 18 авг 15:58 .
drwxrwxrwt  81 root  wheel  5632 18 авг 15:59 ..
-rw-r--r--   1 root  wheel     0 17 авг 18:37 Новый текстовый документ.txt
drwxr-xr-x   2 root  wheel   512 17 авг 18:36 великолепие
-rw-r--r--   1 root  wheel     0 17 авг 18:37 друго документ.txt
drwxr-xr-x   2 root  wheel   512 17 авг 18:36 красота
drwxr-xr-x   2 root  wheel   512 17 авг 18:35 папка один
[myhost]/tmp > 7z a test7z.7z "Новая папка"

7-Zip [64] 9.38 beta  Copyright (c) 1999-2014 Igor Pavlov  2015-01-03
p7zip Version 9.38.1 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning

Creating archive /tmp/test7z.7z

Everything is Ok
[myhost]/tmp > 7z l /tmp/test7z.7z

7-Zip [64] 9.38 beta  Copyright (c) 1999-2014 Igor Pavlov  2015-01-03
p7zip Version 9.38.1 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Listing archive: /tmp/test7z.7z

--
Path = /tmp/test7z.7z
Type = 7z
Physical Size = 277
Headers Size = 277
Solid = -
Blocks = 0

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2016-08-18 15:58:02 D....            0            0  Новая папка
2016-08-17 18:36:00 D....            0            0  Новая папка/великолепие
2016-08-17 18:36:00 D....            0            0  Новая папка/красота
2016-08-17 18:35:00 D....            0            0  Новая папка/папка один
2016-08-17 18:37:00 ....A            0            0  Новая папка/Новый текстовый документ.txt
2016-08-17 18:36:00 ....A            0            0  Новая папка/великолепие/Новый текстовый документ.txt
2016-08-17 18:36:00 ....A            0            0  Новая папка/великолепие/еще один.txt
2016-08-17 18:37:00 ....A            0            0  Новая папка/друго документ.txt
2016-08-17 18:36:00 ....A            0            0  Новая папка/красота/спасет мир.txt
------------------- ----- ------------ ------------  ------------------------
2016-08-18 15:58:02                  0            0  5 files, 4 folders
[myhost]/tmp >
аналогично в Windoze.

ps. -scsWIN можно использовать при a/создании, u/update архива

Итог: хотите ZIP с кириллицей, используйте *nix'ы с UTF-8,
в freebsd -> unzip из портов с iconv+russian,
в linux - тоже патченный, двумя разными вариантами, зависит от системы.

zip и русские имена

Добавлено: 2016-08-22 13:09:04
icb
undefined писал(а): никак, если задание charset не предусмотрено и используется определение locale.
undefined писал(а): ps. -scsWIN можно использовать при a/создании, u/update архива
спасибо понял, именно в этом и проблема
раз на unzip забили, надо попробовать товарищам из 7z написать - может они прислушаются и сделают опцию для кодировки