「Linux」- 解压 ZIP 文件,防止文件名乱码

问题描述

在 Windows 中,创建的 ZIP 文件,如果被压缩文件的文件名中包含非英文字符(比如“中文”),那么在 Linux 中解压时创建的文件名将是乱码。

该笔记将记录:在 Linux 中,如何解压在 Windows 下创建的 ZIP 文件,以防止文件名出现乱码。

解决办法

针对问题,理论上是与发行版无关的,但是鉴于各个发行版会选择不同版本的软件及不同的编译选项,所以实际情况还是会与发行版相关。

在 CentOS 中

可以直接使用 unzip 命令:

unzip -O gb18030 file.zip

在 Debian 中

按理说也能使用 unzip 命令,但是在 Debian 下的 unzip 命令,没有 -O 选项。

在 Debian 中,可以使用 unar 命令:

apt-get install unar
unar -e gb18030 file.zip

补充说明:
1)该方法试用与 Ubuntu 20.04 LTS(压缩包来自 Windows 7)

相关内容

[WIP] 这里需要了解一下字符集相关的内容。

参考文献

decompress ZIP with given encoding
How can I avoid broken languages when unzipping unicode files?