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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-16 17:10:14

Как распаковать zip с русскими именами файлов (и каталогов) созданный под Windows 7?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-16 18:08:51

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

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

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

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

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-17 9:55:11

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

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

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-17 12:58:34

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

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

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-17 17:02:48

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

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

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

Непрочитанное сообщение FiL » 2016-08-17 18:05:08

какие стандартные средства Windows создают ZIP архив?
right click -> Send to -> Compressed (zipped) folder.
стандартнее не бывает

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-17 18:54:13

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

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

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

Непрочитанное сообщение FiL » 2016-08-17 18:58:42

нормально создаются... вполне в соответствии со спецификацией зипа.

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

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

Непрочитанное сообщение ev » 2016-08-17 20:18:22

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

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-18 9:55:50

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).

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-18 10:30:20

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.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-18 10:58:49

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, но должна же быть возможность указать кодировку для архива. Или для использования разных кодировок надо менять локаль? Не очень хорошее решение мягко говоря.

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-18 13:36:40

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?

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-18 14:27:11

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 автоматом не правильно понял что мне надо. Не беда. Для этого и должны быть параметры. Но вот то, что я не могу в параметрах управлять кодировкой - вот это получается беда. Как ее исправить пока не понятно.

guest
проходил мимо

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

Непрочитанное сообщение guest » 2016-08-18 17:55:40

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 - тоже патченный, двумя разными вариантами, зависит от системы.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

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

Непрочитанное сообщение icb » 2016-08-22 13:09:04

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