前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Linux] 解压zip文件中文乱码问题解决

[Linux] 解压zip文件中文乱码问题解决

作者头像
zhwhong
发布2018-05-16 17:21:02
1.6K0
发布2018-05-16 17:21:02
举报
文章被收录于专栏:技术随笔

在Linux下,解压电脑上的.zip文件时,有时候由于编码问题,中文文件名或者文件夹名会出现乱码……

为了方便,于是自己写了一个python的解压.zip文件的脚本,亲测可用。

脚本myunzip.py

代码语言:javascript
复制
#!usr/bin/env python2
# -*- 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()

解压文件时,直接执行:

代码语言:javascript
复制
$ python myunzip.py xxx.zip

或者,先增加可执行权限,然后执行:

代码语言:javascript
复制
$ chmod +x myunzip.py
$ ./myunzip.py xxx.zip

Example:

附录(Linux下使用enca查看文件编码并转换)

在Linux做开发或者系统管理遇到乱码是经常的事情,主要Windows下中文的编码多用GB2312和GBK,而Linux下是UTF-8。很多时候 涉及到和Windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,今天我要推荐的是另一个shell下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,使用上也比iconv方便一些。

Ubuntu下安装enca很简单,apt-get一下就行了。

代码语言:javascript
复制
$ sudo apt-get install enca

enca用法如下:

  • enca -L zh_CN file  检查文件的编码
  • enca -L zh_CN -x UTF-8 file  将文件编码转换为”UTF-8″编码
  • enca -L zh_CN -x UTF-8 < file1 > file2  如果不想覆盖原文件可以这样

除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.12.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 附录(Linux下使用enca查看文件编码并转换)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档