linux下解压zip文件出现中文乱码的解决方法(以及KDE桌面的图形化解决方案)

问题描述

Linux系统的zip压缩包,如果是来自Windows系统,极大可能出现解压后带中文的文件名乱码的问题,而这一问题的起因则是Windows系统不像Linux系统,默认的字符集为全球统一的UTF-8,而是根据系统时区设置当地的字符集格式(所以并不止中文乱码,其他非英文都可能出现乱码)。

解决方法(误)

安装unzip-natspec

名字:unzip-natspec
描述: 使用AltLinux的libnatspec补丁程序为非拉丁文件名创建PKZIP兼容的.zip文件的unzip的补丁程序。

但是安装后实测无效,解压出来的文件依旧乱码(或许国外有效)。

解决方法

unzip软件包的unzip命令提供了-O参数(以及-I参数),可以指定编码。

unzip的帮助文档
-O CHARSET 为DOS,Windows和OS / 2归档文件指定字符编码
-I CHARSET 为UNIX和其他归档文件指定字符编码

因此,使用如下命令解压中文乱码的zip文件即可消除乱码

unzip -O gb18030 example.zip

关于中文字符集:
中国国家标准总局发布的中文字符集有gb2312、gbk与gb18030三种,其中:

  1. gb2312发布于1980年,收录汉字6763个(不包含一些古文生僻字);
  2. gbk发布于1995年,收录汉字21003个;
  3. gb18030现行版本发布于2005年,收录汉字70244个。

参考资料来自百度百科

图形化界面的解决方案(KDE)

推荐farseerfc大神的Dolphin插件
步骤如下:
编写一个unzip.desktop文件:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/zip;application/x-zip-compressed;application/octet-stream;
Actions=unzipsjis;unzipgbk;
X-KDE-Submenu=Unzip as

[Desktop Action unzipsjis]
Name=Unzip here shift-jis
Icon=application-zip
Exec="unzip" "-O" "sjis" "%U"

[Desktop Action unzipgbk]
Name=Unzip here GBK
Icon=application-zip
Exec="unzip" "-O" "gb18030" "%U"

将写好的unzip.desktop文件放到~/.local/share/kservices5/ServiceMenus目录下。
之后右键zip文件,即可选择 Unzip as 子菜单中的 Unzip here GBK 动作,解压中文编码的zip文件。

注意事项

ArchLinux的unzip(version>=6.0-13)软件包的unzip命令取消了-O-I参数,推荐安装archlinuxcn源unzip-iconv软件包(保留了-O-I参数),或者安装Debian系Linux的unzip的deb软件包(使用debtap转换为Arch包)。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值