linux下zip文件解压后乱码解决方案
解决办法一,利用pyton来处理
1.vi uzip文件
2.复制一下内容(Python)
#!/usr/bin/env python # -*- coding: utf-8 -*- # uzip.py import os import sys import zipfile print "Processing File " + sys.argv[1] file=zipfile.ZipFile(sys.argv[1],"r"); for name in file.namelist(): utf8name=name.decode(\'gbk\') print "Extracting " + utf8name pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "": os.makedirs(pathname) data = file.read(name) if not os.path.exists(utf8name): fo = open(utf8name, "w") fo.write(data) fo.close file.close()
3.chmod +x uzip
4../uzip xxxx.zip
方法2,通过unzip行命令解压,指定字符集(推荐使用)
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
有趣的是unzip的manual中并无这个选项的说明,unzip –help对这个参数有一行简单的说明。
方法3,在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入2行
UNZIP=”-O CP936″
ZIPINFO=”-O CP936″
方法4,采用java的jar命令解压zip包 JAR 解压
jar xvf file.name