Этот является вопросом суперпользователя, НО ...
ZIP использует кодовую страницу по умолчанию IBM437. Существует возможность использовать UTF-8, но не все инструменты и библиотеки zip поддерживают это. Некоторые zip-инструменты могут создавать произвольные кодовые страницы, даже если спецификация zip допускает только IBM437 или UTF-8. Я думаю, что WinRar является одним из таких инструментов.
DotNetZip выполняет кодирование. Это будет делать UTF-8 или произвольную кодовую страницу. если вы пишете приложение, есть библиотека .NET. Если вы работаете из скрипта, есть инструменты командной строки. В любом случае, DotNetZip требует .NET. Вам понадобится Mono для запуска в Linux.
пример для командной строки:
zipit.exe Olivier.zip -cp 860 test-éàïù.txt
(для использования кодовой страницы 860) Я не уверен, что Windows Explorer правильно обрабатывает zip-файлы с альтернативной кодировкой для имен файлов внутри zip-файлов.
См. Как архивировать указанные папки с помощью командной строки для получения дополнительной информации об этом инструменте zipit.exe.