The problem affects vfs::zip under Windows.
In zip archive processing, file names are created and displayed using the Windows code page, however the names are stored in the zip file using a differente code page ( CP850 ? ).
This conversion is not performed in zipvfs.tcl and the names of the files which include accentuated letters (like French for example) get mangled when processed with vfs::zip
I get the expected behavior ( filenames with the accentuated letters) with the following modifications (Windows only):
on lines 280 and 388 of file zipvfs.tcl ( vfs version 1.3 ), I replace the line :
set sb(name) [read $fd [u_short $flen]]
with the line :
set sb(name) [ encoding convertfrom cp850 [read $fd [u_short $flen]]]
The handling of code pages in zip files is poorly specified. The filenames should be cp437 unless a flag is set in which case they should be utf-8.
In the real world the filenames and comments are most likely to be system encoding. So if you make the file on a Russian system you get cp850 or something which tends to be fine when you unzip on a similar system but a problem on a dissimilar one.
The format specification includes a 'use utf-8' flag and if Tcl is used to make the zip file then this can be set and handled appropriately. Otherwise it will just have to make do with whatever was provided which tends to be broken. Info-Zip include an extended header attribute that may have the right filename in utf8. If so we can use that in preference to the ascii/cp437 name.