Home > linux&软件技术 > 解决在Linux环境下解压zip的乱码问题

解决在Linux环境下解压zip的乱码问题

撰写于 2011年12月30日 | 6 条评论

        今天折腾了下把windows下的文件全部转移到了Fedora中,之后在解压那些在Windows下压缩为zip格式的压缩包时出现了久违了的乱码问题。于是乎,为了解决这个麻烦事,Google了一堆解决办法一一试过去,却依然没法解决。最后,终于在翻了N页之后找到了一段代码,抱着尝试的心理试用了一下,没想到竟然解决了这一大难题。好东西不忍独享,故而在此贴出让更多人使用。

#!/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()

从代码来看并没有多少技术含量,但是却很实用。

将这段代码保存为 unzip.py之后,将其和需要解压的文件放置在同一个文件夹中,之后在终端中使用下面的代码就可以了:

python unzip.py *.zip

原创文章,转载请注明: 转载自网憩阁

本文链接地址: 解决在Linux环境下解压zip的乱码问题

无觅相关文章插件,快速提升流量

» 标签: , , , ,

评论:1

  1. skysoul 回复
    12/02/18

    Linux 新手 用 ubuntu 遇到同樣的問題,不習慣終端。請問有沒有別的辦法啊???

    [回复]

    叶剑飞 回复:

    @skysoul,

    不会用终端的不要用Linux!使用Linux的唯一目的,就是摆脱图形界面,摆脱鼠标,享受命令行!

    [回复]

    skysoul 回复:

    @叶剑飞, 雖然我在Windows下也好折騰,但我用Ubuntu主要是因為它免費,開源,能滿足日常使用就行。偶爾折騰下還行,真沒想過要擺脫鼠標玩命令行。目的不一樣。謝謝博主回覆!

    [回复]

    叶剑飞 回复:

    @skysoul,

    我不是博主,上面那篇文章不是我写的。我只是一名非常普通的Linux程序员而已。

    [回复]

    叶剑飞 回复:

    @叶剑飞,

    我通常都是用两条命令解决简体中文的乱码的

    LANG=C 7z x 文件名.zip
    convmv -f cp936 -t utf8 -r –notest *

    不过看见你的评论都是繁体字,那就把简体中文代码页cp936改成繁体中文(大五码)代码页cp950

    [回复]

    skysoul 回复:

    @叶剑飞, 對不起,是我疏忽了。謝謝你建議!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>