linux中解压出现文件名乱码、权限不正确等问题的解决方法。
转自 https://www.cnblogs.com/eagling/articles/5753203.html ,方法一解决了我的问题!
方法一
利用python脚本来处理
- 编辑python的解压缩脚本文件
vi unzip.py
文件内容如下:
#!/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()
- 利用上述python脚本解压缩.zip文件
python unzip.py xxmyzipfilexx.zip
方法2
通过unzip行命令解压,指定字符集
unzip -O CP936 xxx.zip
用GBK, GB18030也可以
有趣的是unzip的manual中并无这个选项的说明,unzip –help对这个参数有一行简单的说明。
方法3
在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入下面两行:
UNZIP="-O CP936"
ZIPINFO="-O CP936"
方法4
采用java的jar命令解压zip包 JAR 解压
jar xvf file.name