在 Windows 上解压后文件名编码被破坏

在 Windows 上解压后文件名编码被破坏

我压缩了 Linux 服务器上的一个目录。目录中的许多文件的文件名中都有德语变音符号。文件系统为 ext3,系统区域设置为 de_DE.utf8。

我使用以下命令创建 zip 文件:

zip -r somezip.zip somefolder/

我通过 WinSCP 将此文件传输到我的 Windows 笔记本电脑并解压缩。问题:所有带有德语变音符号的文件名都坏了。在我的 Linux 服务器上,文件名显示正确。

我认为我在创建 zip 文件时犯了一个错误。

有人知道当我在 Linux 上使用 zip 命令压缩文件时如何保留正确的文件名编码吗?

答案1

这可能是由于您的 Windows 配置为 latin-1 编码造成的。

我认为解决这个问题的最简单方法是暂时将您的语言环境设置为 iso-8859-15,然后再次运行 zip:

export LC_ALL=de_DE.iso885915
locale # Check that the locale was applied
zip -r somezip.zip somefolder/
export LC_ALL=de_DE.utf8 # Restore

如果由于没有安装语言环境而导致第一步失败,则可以使用以下命令进行设置:

sudo locale-gen de_DE.iso885915

相关内容