Сейчас имена при поиски внутри zip-файлов кодируются в системную кодировку. Для windows это будет cp1251, для linux utf8 или koi8-r. Так как совершенно непонятно, в какой кодировке сейчас создается большинство zip-архивов популярными утилитами, не очень понятно, какое поведение должно тут быть правильным. По старому стандарту в zip-ах вообще только CP437 и всё

А в jar-файлах (которые zip-ы внутри) например требуется использовать всегда utf8. Могу только сказать, что в linux стандартный zip пишет имена как есть, в той кодировке, в которой они хранятся в файловой системе.
Если кто-то готов поисследовать эту тему - вперед. В частности, если кто-то может сделать несколько крохотных zip-архивов, содержащих файлы с русскими именами в winrar, 7zip, winzip и других подобных популярных программах и их выложить - сделайте и выложите, а я посмотрю, что там и как внутри.