Windows 如何创建具有特定编码的ZIP文件

Windows 如何创建具有特定编码的ZIP文件,windows,linux,encoding,zip,character-encoding,Windows,Linux,Encoding,Zip,Character Encoding,在我的Linux服务器上,我有一些带有重音名称的文件(test-ïïù.zip)。 当我使用7zip命令行工具将它们添加到一个新的ZIP文件时,字符集/编码信息不会被保存,并且当在Windows计算机上打开时,归档文件不会正确显示文件名。 我知道7zip创建的是Zip V1.0存档,而不是2.0。也许该字符集仅限于MSDos字符集? 如何使用7zip或其他zip工具指定编码,以获取可移植的存档 谢谢:)这是一个超级用户问题,但是 ZIP使用默认代码页IBM437。可以使用UTF-8,但并非所有的

在我的Linux服务器上,我有一些带有重音名称的文件(test-ïïù.zip)。 当我使用7zip命令行工具将它们添加到一个新的ZIP文件时,字符集/编码信息不会被保存,并且当在Windows计算机上打开时,归档文件不会正确显示文件名。 我知道7zip创建的是Zip V1.0存档,而不是2.0。也许该字符集仅限于MSDos字符集? 如何使用7zip或其他zip工具指定编码,以获取可移植的存档

谢谢:)

这是一个超级用户问题,但是

ZIP使用默认代码页IBM437。可以使用UTF-8,但并非所有的zip工具和库都支持UTF-8。一些zip工具将执行任意代码页,即使zip规范只允许IBM437或UTF-8。我认为WinRar就是这样一个工具

不进行编码。它将执行UTF-8或任意代码页。如果您正在编写应用程序,则有一个.NET库。如果您是从脚本运行,那么有一些命令行工具。无论哪种方式,DotNetZip都需要.NET。你需要Mono在Linux上运行它

命令行示例:

zipit.exe Olivier.zip -cp 860 test-éàïù.txt 
(使用860代码页)我不确定Windows资源管理器是否正确处理ZIP文件,并对ZIP中的文件名使用替代编码


有关zipit.exe工具的更多信息,请参阅

使用指定的代码页创建ZIP文件:

7z a -mcp=<code_page> -tzip <archive_name> <file_names>...
7z x -mcp=<code_page> <archive_name>
7z a-mcp=-tzip。。。
使用指定的代码页从ZIP文件中提取文件:

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

这属于superuser.com