如何创建具有特定编码的 ZIP 文件
在我的 Linux 服务器上,我有一些带有重音名称的文件 (test-éàïù.zip)。 当我使用 7zip 命令行工具将它们添加到新的 ZIP 文件时,字符集/编码信息不会保存,并且在 Windows 计算机上打开时,存档不会正确显示文件名。 我知道 7zip 创建 Zip V1.0 档案,而不是 2.0。也许字符集仅限于 MSDos 字符集? 如何使用 7zip 或其他 zip 工具指定编码,以获得可移植的存档?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个超级用户问题,但是...
ZIP 使用默认代码页 IBM437。可以使用 UTF-8,但并非所有 zip 工具和库都支持它。即使 zip 规范仅允许 IBM437 或 UTF-8,某些 zip 工具也会执行任意代码页。我认为 WinRar 就是这样的工具之一。
DotNetZip 进行编码。它将执行 UTF-8 或任意代码页。如果您正在编写应用程序,则有一个 .NET 库。如果您从脚本运行,则可以使用命令行工具。无论哪种方式,DotNetZip 都需要 .NET。您需要 Mono 才能在 Linux 上运行它。
命令行示例:(
使用 860 代码页)我不确定 Windows 资源管理器是否正确处理 zip 文件,并使用 zip 中文件名的备用编码。
请参阅如何使用命令行压缩指定文件夹 有关 zipit.exe 工具的更多信息。
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:
(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.
使用指定的代码页创建 ZIP 文件:
使用指定的代码页从 ZIP 文件中提取文件:
Create a ZIP file using specified code page:
Extract files from a ZIP file using specified code page:
我不知道如何使用 7zip 创建 zip v1.0 存档。
您可以使用 Info-Zip 的 zip 1.1 创建版本 1 ZIP 存档,该版本仍然可用(从 FTP 下载 http://infozip.sourceforge.net/Zip.html#Downloads)。您需要从源代码构建它(在 Linux 系统上制作 sysv);然后你就可以使用新建的 zip 来创建旧格式的档案:
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: