Ubuntu下解决解压zip文件中文文件名乱码问题
在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK,而zip文件自身却不带有任何标识其编码的信息。对于这个问题,主要有以下三种解决方法:
一、命令行指定解压字符集
解压时指定字符集,可以是CP936,GBK,GB18030
$unzip -O CP936 xxx.zip
不过,"man unzip"对这个参数没有任何说明,但是"unzip --help"对这个参数有一行简单的说明。
网上有人说,这个方法不总是凑效,在Ubuntu 12.04上,它是可以的。
二、在环境变量中指定unzip显示和解压参数
在/etc/environment中加入以下两行:
UNZIP="-O CP936"
ZIPINFO="-O CP936"
这样Gnome桌面的归档文件管理器(file-roller)可以正常使用unzip解压中文。
三、使用p7zip解压
1. 安装p7zip-full
$sudo apt-get install p7zip-full
2. 卸载unzip
$sudo apt-get remove unzip
3. 再下载更新的p7zip-full包把原来的程序替换掉/usr/lib/p7zip/
p7z-bin.tar.gz 下载地址:p7z-bin.tar.gz (限于i386版本)
$sudo tar xzvf p7z-bin.tar.gz -C /usr/lib/p7zip
4. 使用锁定p7zip、p7zip-rar和p7zip-full版本(防止更新后失效)
1) 安装新立得软件管理器 sudo apt-get install synaptic(如果已经安装可以略过)
2) 打开新立得软件包管理器,搜索p7zip
3) 在搜索出的结果中,选择p7zip、p7zip-rar和p7zip-full,再点击软件包 -> 设置 -> 锁定版本
四、结论
1、 推荐使用方法二解决zip文件解压中文文件名乱码的问题。
2、方法一使用命令行带参数的方法不太方便。
3、方法三需要卸载unzip,而很多软件是依赖unzip的,卸载unzip的同时,这些依赖unzip的软件也会被卸载。
以上方法在Ubuntu 12.04下测试通过。
=-=-=-=-=
Powered by Blogilo
Ubuntu下解决解压zip文件中文文件名乱码问题的更多相关文章
- 解压zip文件中文文件名乱码问题
主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编 ...
- java使用解压zip文件,文件名乱码解决方案
File outFileDir = new File(outDir);if (!outFileDir.exists()) { boolean isMakDir = outFileDir.mkdirs( ...
- Linux(Ubuntu)下如何解压 .zip 文件
安装解压缩软件 使用如下命令安装: sudo apt-get install p7zip-full 7zip,估计会比较熟悉. p7zip,是什么? 听说是 7zip 的 shell 封装. 解压 使 ...
- Ubuntu下如何解压各类文件
tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------.gz解压1:gunzi ...
- Centos7解压Zip文件
一.安装支持ZIP的工具 yum install -y unzip zip 二.解压zip文件 unzip 文件名.zip 三.压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称
- Ubuntu18.04 解压zip文件乱码的解决方法
在Ubuntu的系统下解压zip文件的时候居然出现了乱码,通过查找网上的资料,解决的办法有两种 一.通过unzip行命令解压,指定字符集,由于zip格式中并没有指定编码格式,Windows下生成的zi ...
- Ubuntu 14 如何解压 .zip、.rar 文件?
.zip 和 .rar 是Windows下常用的压缩文件,在Ubuntu中如何解压? [解压.zip文件] Ubuntu中貌似已经安装了unzip软件,解压命令如下: unzip ./FileName ...
- Android 解压zip文件(支持中文)
过了n多天后,当再次使用原先博客上写的那篇: Android 压缩解压zip文件 去做zip包的解压的时候,出现了原来没有发现的很多问题.首先是中文汉字问题,使用java的zip包不能很好的解决解压问 ...
- Ubuntu 14 如何解压 .zip、.rar 文件
.zip 和 .rar 是Windows下常用的压缩文件,在Ubuntu中如何解压. [解压.zip文件] Ubuntu中貌似已经安装了unzip软件,解压命令如下: unzip ./FileName ...
随机推荐
- codeforces 591B Rebranding (模拟)
Rebranding Problem Description The name of one small but proud corporation consists of n lowercase E ...
- TFS下载文件已损坏问题
近日在把一个数千人使用的TFS环境进行机房迁移时,从现有的服务器集群中整体迁移到另外一个服务器集群中,经过周密的设计迁移方案,充分验证方案中的各个关键过程,最终在几乎对数千人用户完全透明,没有任何感知 ...
- 关于“foreach循环”中遇到的几个问题总结
1.列表页面用"foreach循环"的时候数据没有显示,此时需要检查你对象模型中属性的首字母是否大写,切记不能大写(本人在做一个项目的时候,对象模型是别人建立的,属性首字母大写了, ...
- ASP.Net MVC连接MySQL和Code First的使用
首先要准备一下的工具作为环境 MySQL Community Server 5.7.x My Workbench 6.3 VS2017 新建一个项目,NetMySQLCodeFirst 选择MVC,再 ...
- 解决ajax跨域的方法原理详解之Cors方法
1.神马是跨域(Cross Domain) 对于端口和协议的不同,只能通过后台来解决. 一句话:同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是 跨域问题了.而为什么开 ...
- 获取安卓的SH1安全码
用于获取手机联系人 信息 public static String sHA1(Context context) { try { PackageInfo info = context.getPac ...
- Python函数之lambda,内置函数,yield生成器等
lambda 1,用于处理简单逻辑 2,自动返回数据(return) 单参数 >>> func2 = lambda a: a+1>>> result = func2 ...
- (坑)django test在多线程下的问题
问题描述: 使用django自带的test做测试,尝试去数据库中取数据,主线程中没有问题,非主线程中取不到数据. 示例代码: class MyTestCase(TestCase): def setUp ...
- javascript设计模式详解之策略模式
接上篇命令模式来继续看下js设计模式中另一种常用的模式,策略模式.策略模式也是js开发中常用的一种实例,不要被这么略显深邃的名字给迷惑了.接下来我们慢慢看一下. 一.基本概念与使用场景: 基本概念:定 ...
- 深入理解Java常用类----String(二)
上篇介绍了String类的构造器,获取内部属性等方法,最后留下了最常用的局部操作函数没有介绍,本篇将接着上篇内容,从这些最常见的函数的操作说起,看看我们日常经常使用的这些方法的内部是怎么实现的.第一个 ...