常遇到这个问题,今天终于解决了,参考网址:http://forum.ubuntu.org.cn/viewtopic.php?t=175405

有2种方式解决问题:

1. 通过unzip行命令解压,指定字符集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明。

2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入2行
UNZIP="-O CP936"
ZIPINFO="-O CP936"
这样Gnome桌面的归档文件管理器(file-roller)可以正常使用unzip解压中文,但是file-roller本身并不能设置编码传递给unzip。

我先用了第二种方法,但是发现自己没装file-roller,于是用第一种方法指定字符集,然后就搞定了,但是还是觉得这个CP936。。。。记不住阿,不知道还有没有更好的方法

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Latm Ake
链接:http://www.zhihu.com/question/20523036/answer/35225920
来源:知乎

由于zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。

目前网上流传一种unzip -O cp936的方法,但一些unzip是没有-O这个选项的。

我使用的版本 unzip 6.0 debian modified 版本有这个选项

我发现另外两种解决方案可用。

python方案

此方案目前来看非常完美。

#!/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 " + utf8namepathname = 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()

Windows 用户屏蔽两条 print 语句,Linux 用户不用屏蔽

7z方案

需要安装p7zip和convmv,在Fedora下的命令是

su -c 'yum install p7zip convmv'

在ubuntu下的安装命令是

sudo apt-get install p7zip convmv

安装完之后,就可以用7za和convmv两个命令完成解压缩任务。

LANG=C 7za x your-zip-file.zip
convmv -f GBK -t utf8 --notest -r .

第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。

第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换。

ubuntu 14.04解压zip文件出现乱码相关推荐

  1. ubuntu 16.04L解压zip文件出现乱码

    开个传送门:http://blog.csdn.net/qq_27803491/article/details/50375092 下附原文: 常遇到这个问题,今天终于解决了,参考网址:http://fo ...

  2. Ubuntu 14 如何解压 .zip、.rar 文件

    .zip 和 .rar 是Windows下常用的压缩文件,在Ubuntu中如何解压. [解压.zip文件] Ubuntu中貌似已经安装了unzip软件,解压命令如下: unzip ./FileName ...

  3. Windows系统解压zip文件之后乱码的问题的原因和解决方法

    我昨天用7zip压缩了一个压缩包给我同事,他那边显示的是乱码. 像下面这样. 具体的原因是: 7zip压缩zip格式的文件的时候,对文件名默认使用的是Windows系统的默认编码,我的系统的默认编码是 ...

  4. Android端解压ZIP文件中文乱码的问题

    吐槽 为解决这个问题,在网上徘徊了数小时,被那些盲目搬砖的博主坑死,明明不可行的方案为什么还要搬到自己的口袋呢?这些人真害人不浅,浪费彼此时间!!!吐槽到此为止.上代码: 正文 首先呢,实现此功能用到 ...

  5. 【基础操作】ubuntu解压zip文件乱码

    原文:https://www.cnblogs.com/pipci/p/10114527.html Ubuntu18.04 解压zip文件乱码的解决方法 在Ubuntu的系统下解压zip文件的时候居然出 ...

  6. ubuntu解压zip文件命令_Linux常用命令10 - unzip

    zip 是最广泛使用的归档文件, 除了linux,windows也是非常的广泛.,支持无损数据压缩. zip 文件是包含一个或多个压缩文件或目录的数据容器. 接下来,我将解释如何使用 unzip 命令 ...

  7. 解压zip文件出现-bash:unzip:commond not found

    来源:http://www.cnblogs.com/thinksasa/archive/2013/01/20/2868232.html 解压zip文件出现-bash:unzip:commond not ...

  8. Android 解压zip文件

    过了n多天后,当再次使用原先博客上写的那篇: Android 压缩解压zip文件 去做zip包的解压的时候,出现了原来没有发现的很多问题.首先是中文汉字问题,使用java的zip包不能很好的解决解压问 ...

  9. Android 解压zip文件你知道多少?

    对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...

最新文章

  1. symfony2项目访问app_dev.php不显示debug工具栏的问题
  2. pythonselect a valied_python 11期 第五天
  3. 面部识别技术走到十字路口?
  4. tomcat启动完成执行 某个方法 定时任务(Spring)
  5. 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数
  6. android如何编译lame,Android 编译 Lame 库心路历程
  7. 该不该放弃单片机,嵌入式这条路?
  8. V210调整根分区大小
  9. 阿里云物联网边缘计算加载MQTT驱动
  10. 【clickhouse】mac 10.15.7使用docker安装clickhouse
  11. 多台kafka同时启动shell脚本
  12. 用于保存计算机输入输出数据的材料及其,与房地产,电子,金融,汽车并称五大产业的是()...
  13. 9大最佳工程施工项目管理系统
  14. C#使用NPOI操作Excel
  15. 一脸懵逼搭建Zookeeper分布式集群
  16. 论文:Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video阅读遇到的问题及解答
  17. win7-32位系统SqlServer2014版本下载与安装
  18. 网络原理——网络层与数据链路层
  19. 我的互联网金融行业经验总结
  20. Ebay API item_get - 获得EBAY商品详情

热门文章

  1. 短视频是屌丝逆袭的一个绝好的机会
  2. 都说喜欢文字的女人都是孤独的,她们怕孤独,却又喜欢孤独
  3. 上网行为管理产品选型简述
  4. 订阅计算机杂志推荐,《电脑爱好者》 | 电脑爱好者杂志订阅_杂志铺:杂志折扣订阅网...
  5. 【C语言】职工管理系统详解(文件操作)
  6. linux系统下监控录像软件,Linux系统信息监控软件system-monitor
  7. 【技术向】DIY SM2262en 1TB固态,量产开卡+软件分享
  8. 三星SCH-I739官方原版ROM下载及刷机教程
  9. 化妆品电商平台数据分析
  10. MySQL函数(经典收藏)