Обработка ZIP-файла с любым содержимым (именами файлов или паролями), которые не являются ASCII, сопряжена с трудностями и лучше избегать. Вы должны сделать все возможное, чтобы ограничить допустимые пароли простым ASCII, который будет работать где угодно.
Каждая ОС будет обрабатывать байты в своей собственной системной кодировке по умолчанию, которая, вероятно, (но не обязательно) будет UTF-8 в недавнем Linuxen, UTF-8 в OS X и никогда не UTF-8 в Windows. Даже если вы создадите ZIP-файл с паролем, отличным от ASCII, закодированным в cp1252, он будет доступен для чтения только при установке Windows в Западной Европе. И некоторые инструменты ZIP по-прежнему ведут себя по-другому (например, zau-декодер nautilus, похоже, использует ISO-8859-1 для паролей, даже когда он использует UTF-8 для имен файлов). Все дело в разбитом беспорядке.
Вы можете создавать ZIP-файлы с паролями cp1252 в Linux. Какой инструмент вы используете в настоящее время для создания парольных файлов? Инструмент командной строки zip
просто принимает байты и не заботится о том, в какой кодировке они находятся, поэтому для обеспечения того, чтобы любые символы, не входящие в ASCII, которые вы печатаете на клавиатуре, когда он запрашивает пароль, были в cp1252, вы должны установить кодировка вашего терминала в cp1252. Для GNOME по умолчанию «Терминал» это можно сделать в Терминале-> Установить кодировку символов-> Windows-1252 (возможно, вам придется добавить / удалить эту кодировку, если ее нет в списке).