PKZipC v14 в Windows — как передать не-ASCII имена файлов в файл @list

PKZipC v14 в Windows — как передать не-ASCII имена файлов в файл @list

В документации PKZipC упоминается -utf8возможность сохранения имен файлов, отличных от ASCII, в кодировке UTF-8 внутри ZIP-архива, но не говорится, как добавлять такие файлы с помощью @listаргумента pkzipc -add.

Я попробовал несколько комбинаций запуска с -utf8переключателем и без него, а также использования @listфайлов, сохраненных в кодировках UTF-8 или UTF-16 с BOM и без него, но все они не увенчались успехом.

Мне интересно, кому-нибудь повезло больше в реализации этого проекта.

решение1

Поскольку вы перепробовали все возможные комбинации переключателей -utf8и @list с кодировкой UTF-8 или UTF-16 и даже с/без BOM, я не вижу, что еще можно сделать с помощью PKZipC для Windows и его параметров.

Я бы посоветовал обратиться в службу поддержки PKWARE и подать жалобу, хотя это может и не принести немедленного решения.

В то же время вам нужно будет преобразовать имена файлов, содержащие не-ASCII символы, в имена без таких символов. Этот формат называется краткой формой имени файла, которая по сути является старым форматом DOS имени файла 8.3. Команда dir /xотобразит эти имена.

Чтобы получить короткие имена для группы файлов, см. пост Как найти короткий путь к каталогу/файлу Windows? где перечислены различные решения. Мне особенно понравилосьэтот ответ который предложил следующую однострочную фразу:

cmd /c for %A in ("C:\Program Files") do @echo %~sA

Вот пример того, как вы можете это использовать:

введите описание изображения здесь


Поскольку вы говорите, что ваш ИТ-отдел решил отключить короткие имена NTFS 8.3 на ваших сетевых ресурсах, я бы посоветовал поискать альтернативу. Вот некоторые из них, которые я бы предложил протестировать:

  • Бандизип (бесплатное ПО и мое личное любимое)

  • PeaZip (бесплатно и с открытым исходным кодом)

  • 7-Зип (бесплатно и с открытым исходным кодом)

  • WinRAR(коммерческий)

  • WinZip(коммерческий)

решение2

Используя командную строку, попробуйте следующее:

  • выполнить команду chcp 65001для изменения cmdкодовой страницы наutf8

  • Затем выполните pkzipcкоманду с помощью-utf8

Надеюсь, это вам поможет.

Связанный контент