user176681
user176681

Reputation:

How to create ZIP files with specific encoding

On my Linux server I have some files with accented names (test-éàïù.zip). When I add them to a new ZIP file using 7zip command-line tool, the charset/encoding information is not saved and when opened on a Windows computer, the archive does not correctly display filenames. I know that 7zip creates Zip V1.0 archives, not 2.0. Maybe the charset is limited to MSDos charset ? How could I specify an encoding using 7zip or another zip tool, in order to get portable archives?

Upvotes: 4

Views: 28156

Answers (3)

Justin Case
Justin Case

Reputation: 11

I know that 7zip creates Zip V1.0 archives, not 2.0.

I couldn't work out how to use 7zip to create a zip v1.0 archive.

You can create version 1 ZIP archives using Info-Zip’s zip 1.1, which is still available (download from the FTP http://infozip.sourceforge.net/Zip.html#Downloads). You’ll need to build it from source (make sysv on a Linux system); then you’ll be able to use the newly-built zip to create old-format archives:

]# ./zip filename.zip file1 file2 file3
]# file filename.zip 
]# filename.zip: Zip archive data, at least v1.0 to extract

Upvotes: 1

LF. Xia
LF. Xia

Reputation: 41

Create a ZIP file using specified code page:

7z a -mcp=<code_page> -tzip <archive_name> <file_names>...

Extract files from a ZIP file using specified code page:

7z x -mcp=<code_page> <archive_name>

Upvotes: 3

Cheeso
Cheeso

Reputation: 192587

This is a superuser question, BUT...

ZIP uses a default codepage of IBM437. There is the possibility to use UTF-8, but not all zip tools and libraries support that. Some zip tools will do arbitrary code pages, even though the zip spec allows only IBM437 or UTF-8. I think WinRar is one such tool.

DotNetZip does encoding. It will do UTF-8 or an arbitrary code page. if you're writing an app, there is a .NET library. If you are running from a script, there are command line tools. Either way, DotNetZip requires .NET. You will need Mono to run it on Linux.

example for the command line:

zipit.exe Olivier.zip -cp 860 test-éàïù.txt 

(to use the 860 codepage) I'm not sure that Windows Explorer correctly handles zipfiles with alternate encoding for the filenames within the zips.

See How to zip specified folders with Command Line for more info on that zipit.exe tool.

Upvotes: 11

Related Questions