问题描述
在 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?