【linux】解决unzip在linux下解压中文名zip文件出现乱码的问题
#问题描述 linux(我用的系统是centos)下zip原生命令解压带中文名的压缩包时,解压出来的文件为乱码: 通过在网上查询得知,zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。 网上说,zip 有个参数-O可指定文件编码,但是我在系统上却没有找到相应的参数: 原来unzip官方并不支持该参数,需要通过给unzip源码打补丁包的方法,来解决中文编码问题。 #解决方法 ##unzip源码编译 首先下载unzip源码: https://svwh.dl.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz 由于unzip编译需要bzip源码,下载源码: https://iweb.dl.sourceforge.net/project/bzip2/bzip2-1.0.6.tar.gz 下载完成后,解压文件: tar zxvf unzip60.tar.gz tar zxvf bzip2-1.0.6.tar.gz 将bzip2下所有文件拷贝到unzip60/bzip2下 make -f unix/Makefile flags make