Linux文件解压后文件名乱码,ubuntu14.04中zip解压后文件名乱码

这个主要是因为zip文件对文件名的编码默认为当前环境的locale,如在windows下压缩的zip文件,在linux下其中的中文名便会乱码。

这是zip格式的缺陷,所以目前并没有很完美的解决办法。当前的办法有如下两种:

使用upzip命令的时候加个参数

upzip -O CP936 a.zip

用python写一个脚本来解压

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# unzip-gbk.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()

warning: 该程序没有经过我的验证,请自己试验以保证正确性

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值