最近遇到一个问题,把一些文件在window下压缩后上传到linux服务器上,解压发现中文乱码,网上搜了一下,有个办法是使用unzip行命令解压时,指定字符集,可是试了一下并不管用,还有个方法是使用jar,但是这需要安装jar,而且不知道为什么,解压后中文还是乱码,后来找到了另外一种方法,很管用。就是使用python脚本来解压文件,一般linux系统都默认安装了python,不需要再安装了。
以下为python脚本的代码,可以命名为unzip.py,写入以下代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
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()
然后 把zip文件跟unzip.py放在同一级目录,运行命令python unzip.py filename.zip,完美解决中文乱码问题