linux下zip文件解压出现乱码怎么办?

发布时间 - 2017-05-24 00:00:00    点击率:

本篇文章主要介绍了解决linux下zip文件解压乱码问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

原因

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

解决方案一

使用7z解压。

安装p7zip和convmv


# fedora
$ su -c 'yum install p7zip convmv'
# ubuntu
$ sudo apt-get install p7zip convmv

执行一下命令解压缩


# 使用7z解压缩
$ LANG=C 7za x your-zip-file.zip
# 递归转码
$ convmv -f GBK -t utf8 --notest -r .

解决方案二

在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。

虽然2005年就有人把这报告为bug, 但是info-zip的官方网站没有把自动识别编码列入计划,可能他们不认为这是个问题。Sun对java中存在N年的zip编码问题,采用了同样的处理方式。

有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。

【相关推荐】

1. Mysql免费视频教程

2. 详解innodb_index_stats导入数据时 提示表主键冲突的错误

3. 实例详解 mysql中innodb_autoinc_lock_mode

4. MySQL中添加新用户权限的实例详解

5. Linux如何检测服务器网络状况


# linux  # 递归  # 解压缩  # 的是  # 出现乱码  # 就有  # 有一定  # 感兴趣  # 自动识别  # 采用了  # 解决问题 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用美橙互联一键搭建多站合一网站?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何升级到最新版本?(升级指南和步骤)  PHP正则匹配日期和时间(时间戳转换)的实例代码  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何实现javascript表单验证_正则表达式有哪些实用技巧  JavaScript实现Fly Bird小游戏  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何用已有域名快速搭建网站?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  微信小程序 配置文件详细介绍  Android 常见的图片加载框架详细介绍  bootstrap日历插件datetimepicker使用方法  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何基于PHP生成高效IDC网络公司建站源码?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel distinct去重查询_Laravel Eloquent去重方法  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  微信小程序 HTTPS报错整理常见问题及解决方案  zabbix利用python脚本发送报警邮件的方法  在Oracle关闭情况下如何修改spfile的参数  C++时间戳转换成日期时间的步骤和示例代码  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  香港服务器网站卡顿?如何解决网络延迟与负载问题?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何发送系统通知?(Notification渠道示例)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  教你用AI润色文章,让你的文字表达更专业  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何快速生成专业多端适配建站电话?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何获取上海专业网站定制建站电话?  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何快速搭建FTP站点实现文件共享?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  个人摄影网站制作流程,摄影爱好者都去什么网站?