1 问题描述

直接

unzip xxx.zip

乱码,肯定是编码问题了不用问。但是unzip没有指定编码的选项: 在这里插入图片描述 网上的解决方案如下:

unzip -O GBK/GB18030CP936  xx.zip

但是没有-O选项啊。

2 解决办法

解决办法是安装unzip-iconv,笔者系统为manjaro,直接安装会提示会与unzip冲突: 在这里插入图片描述 unzip-iconv是一个补丁,但是好像没被官方接纳,比如Ubuntu下的unzip是带-O的,Archlinux与CentOS下默认没带,安装unzip-iconv即可,也可以在保留unzip的基础上打上unzip-iconv补丁包,参照这里。 安装后,可以先指定编码列出看看:

unzip -O gbk -l xxx.zip

在这里插入图片描述 这里编码可以用小写,有一个小的bug是,先写-O选项的话,后面的压缩包文件名补全不了,目前笔者还没有找到好的解决办法(不知道你们的会不会这样,反正笔者的补全不了),所以,先-l补全写上文件,再移动到前面加上-O选项。 列出文件没问题的话,解压就行了:

unzip -O gbk -d folder xxx.zip

-d指定解压目录,如果没加目录的话,直接unzip会把所有文件解压到当前目录。