我有以下问题。我需要在linux下使用由CP-1252编码的另一方提供的密码创建一个zip文件。我试过的是将此密码的编码更改为UTF-8。然后我用这个utf-8编码的密码保护了一个zipfile。但是,无法使用CP-1252编码的原始密码在Windows中解压缩该文件。
此致
戈登
答案 0 :(得分:1)
使用非ASCII的任何内容(文件名或密码)处理ZIP文件时会遇到困难,最好避免使用。您应该尽一切可能将允许的密码限制为纯ASCII,这可以在任何地方使用。
每个操作系统都会将字节视为自己的系统默认编码,这可能(但不确定)在最近的Linuxen中是UTF-8,在OS X中是UTF-8,在Windows中从不是UTF-8。即使您使用cp1252中编码的非ASCII密码创建ZIP文件,它也只能在西欧Windows安装中读取。并且一些ZIP工具的行为仍然不同(例如,即使在使用UTF-8作为文件名时,nautilus zip解码器似乎也使用ISO-8859-1作为密码)。整件事情是一团糟。
您可以在Linux中使用cp1252密码创建ZIP文件。您目前使用什么工具来创建密码文件?命令行zip
工具只接受字节而不关心它们所处的编码,因此为了确保在键盘提示输入密码时键入的任何非ASCII字符都在cp1252中,应将终端的编码设置为cp1252。对于GNOME默认的“终端”,这可以通过终端 - >设置字符编码 - > Windows-1252完成(如果未列出,则可能必须添加/删除此编码)。
答案 1 :(得分:0)
看看7z项目,它对我有用。