Windows - Кириллица в именах файлов внутри архива ZIP: различия между версиями
ILobster (обсуждение | вклад) м (допечатка) |
ILobster (обсуждение | вклад) м (→Как это автоматизировать: тафтология) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 5: | Строка 5: | ||
Иногда при открытии архивов <code>ZIP</code> в именах файлов написаны иероглифы. В основном, это случается при работе с архивами, упакованными в среде Windows, в других операционных системах, например Linux и Mac OS. | Иногда при открытии архивов <code>ZIP</code> в именах файлов написаны иероглифы. В основном, это случается при работе с архивами, упакованными в среде Windows, в других операционных системах, например Linux и Mac OS. | ||
Вот | Вот как это выглядит: | ||
[[Файл:Zip.bad.enc.png|center]] | [[Файл:Zip.bad.enc.png|center]] | ||
Строка 43: | Строка 43: | ||
Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью. | Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью. | ||
Как вариант, можно написать свою оболочку для <code>7z.exe</code> или просто | Как вариант, можно написать свою оболочку для <code>7z.exe</code> или просто создать <code>.bat</code>-файл. | ||
А можно воспользоваться приложением <code>Open++</code> и [[Windows_-_Новые_пункты_контекстного_меню#7-Zip - упаковка файлов в ZIP с кодировкой имён в UTF-8 | добавить нужный пункт в контекстное меню Windows]]. | А можно воспользоваться приложением <code>Open++</code> и [[Windows_-_Новые_пункты_контекстного_меню#7-Zip - упаковка файлов в ZIP с кодировкой имён в UTF-8 | добавить нужный пункт в контекстное меню Windows]]. | ||
[[Категория:Windows]] | [[Категория:Windows]] |
Текущая версия от 14:00, 1 июня 2013
В статье рассказывается о том, как упаковывать файлы в ZIP-архив с кодировкой имён в UTF-8.
Описание проблемы
Иногда при открытии архивов ZIP
в именах файлов написаны иероглифы. В основном, это случается при работе с архивами, упакованными в среде Windows, в других операционных системах, например Linux и Mac OS.
Вот как это выглядит:
Почему так
Такое получается из-за разных кодировок в разных операционных системах. А точнее из-за того, что Windows до сих пор использует свою WIN1251
, когда давно уже существует UTF-8
, созданная специально во избежание подобных проблем. ZIP, хоть и являясь старейшим и распространённейшим форматом архивов, испытывает проблемы с этим при переносе архива с платформы на платформу.
Не имеет значения, какую программу-архиватор вы используете - причина именно в самом формате ZIP
. Для проверки мы упаковали тестовый архив с настройками по умолчанию сначала архиватором WinRAR, затем - архиватором 7-Zip. После чего просмотрели архивы в среде Mac OS - в обоих архивах кириллические имена файлов превратились в набор кракозябр.
Ну так может тогда не стоит использовать формат ZIP
и паковать всё, например, в 7z
? В общем-то, это хорошая идея, но дело в том (и это единственная причина), что ZIP
, как уже говорилось, является наиболее распространённым форматом архивов, потому чтобы большинство ваших пользователей смогло распаковать ваш архив, использовать рекомендуется именно его.
Что делать
Нужно как-то принудительно указать архиватору, что при кодировке имён файлов он должен использовать UTF-8.
И у архиватора 7-Zip
есть такая возможность. Формат команды следующий:
7z.exe a -tzip -mcu archname.zip file2pack.txt
Здесь:
7z.exe
- имя исполняемого файла архиватора;a
- команда архивации;-tzip
- формат архива: ZIP;-mcu
- именно эти ключи указывают на кодировку UTF-8;archname.zip
- имя итогового файла архива;file2pack.txt
- файлы для упаковки.
После создание архива такой командой кириллица в именах файлов сохраняется на всех платформах, использующих UTF-8 (то есть, практически везде):
Очередная медаль на грудь славного архиватора 7-Zip
.
Как это автоматизировать
Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью.
Как вариант, можно написать свою оболочку для 7z.exe
или просто создать .bat
-файл.
А можно воспользоваться приложением Open++
и добавить нужный пункт в контекстное меню Windows.