我们在linux中解压一个含有中文名字的压缩包如“码农浅知.zip”时,如果直接使用如下的命令,将会出现中文乱码。
压缩包里的任何中文也都会出现中文乱码

1
unzip 码农浅知.zip

主要的原因是因为unzip在解压的时候会将编码转化为其内部默认的编码,而默认的编码根本不支持中文CP936编码。因此我们需要在解压的时候明确的指定需要使用的编码。

目前可以采用如下两种方式解决

在解压的时候直接指定编码格式

#指定GBK GB18030编码也是可以的

1
unzip -O CP936 码农浅知.zip

配置环境变量,指定unzip的参数

在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件

比如,需要在/etc/environment中加入2行:

在终端中输入如下命令,要带上sudo不然无法保存

1
2
3
4
5
6
7
sudo nano /etc/environment

#然后在打开的文件中添加如下命令

UNZIP="-O CP936"

ZIPINFO="-O CP936"