
问题的产生在于zip格式天生没有统一规定文件名编码,而Linux和Windows的默认的编码不同,Linux下默认编码是UTF-8,Windows下默认的编码是GBK(简体中文版),总之打开和自身默认编码不同的zip就会出现乱码。
可通过-O参数指定编码:
unzip -O GBK 文件名.zip
绝大部分情况就能解决问题,但部分Linux发行版(如Manjaro、CentOS)的unzip可能不支持-O参数,需使用替代方案。
或者其它情形,比如你懒,比如你不知道也不想查zip是什么编码。
unar是一个支持自动编码检测的解压工具,安装后可直接使用:
# 安装unar,非apt系的自行查询安装命令
sudo apt install unar
# 解压文件
unar 文件名.zip