中文名在linux中必须是乱码的哦这个没话说了,当然如果有配置好的估计是可以解决,下面小编整理了一些解决unzip解压后中文名乱码问题.
解决办法一:利用pyton来处理
1.vi uzip文件
2.复制一下内容(Python)
- #!/usr/bin/envpython
- #-*-coding:utf-8-*-
- #uzip.py
- importos
- importsys
- importzipfile
- print"ProcessingFile"+sys.argv[1]
- file=zipfile.ZipFile(sys.argv[1],"r");
- fornameinfile.namelist():
- utf8name=name.decode('gbk')
- print"Extracting"+utf8name
- pathname=os.path.dirname(utf8name)
- ifnotos.path.exists(pathname)andpathname!="":
- os.makedirs(pathname)//phpfensi.com
- data=file.read(name)
- ifnotos.path.exists(utf8name):
- fo=open(utf8name,"w")
- fo.write(data)
- fo.close
- file.close()
- 3.chmod+xuzip
- 4../uzipxxxx.zip
方法2,通过unzip行命令解压,指定字符集:
unzip -O CP936 xxx.zip(用GBK,GB18030也可以)
有趣的是unzip的manual中并无这个选项的说明,unzip –help对这个参数有一行简单的说明.
方法3,在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件,/etc/environment中加入2行.
- UNZIP=”-OCP936″
- ZIPINFO=”-OCP936″
方法4,采用java的jar命令解压zip包 JAR 解压:jar xvf file.name