系统:ubuntu 18.04

下载一个zip压缩的数据文件,打开后文件名都是乱码,比如这样的: ╡┌4╒┬╩╡└²-╖╓╬÷╜ß╣√.xlsx

原因:

zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,Linux下的默认编码是UTF8。因此,导致这些zip文件在Linux下解压时出现乱码问题。

解决方法:

方法来自于知乎Latm Ake:https://www.zhihu.com/question/20523036/answer/35225920

安装7zip和convmv:

1
sudo apt-get install p7zip convmv

安装完后,用7za和convmv两个命令完成解压缩任务:

1
2
LANG=C 7za x your-zip-file.zip
convmv -f GBK -t utf8 --notest -r .

第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换。

解压完成后的情况:

zip解压乱码解决