linux下zip文件解压乱码该如何解决?


本文摘自PHP中文网,作者零下一度,侵删。

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

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

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

因为编码问题,zip文件中的中文文件在linux下解压会出现乱码

如果你使用archlinux那么使用AUR安装unzip-natspec就可以解决这个问题

这个时候,使用unzip xxx.zip就可以正确解压文件

然后在file-roller归档管理器中操作,中文名称依然是乱码,据说是因为file-roller优先使用p7zip

删除p7zip后问题解决

然而我还想同时能够使用p7zip软件包,谁知道这个问题如何解决?

从这里下载代码研究,发现这样的逻辑

1

2

3

4

5

6

7

8

/* give priority to 7z, unzip and zip that supports ZIP files better. */if ((strcmp (mime_type, "application/zip") == 0)|| (strcmp (mime_type, "application/x-cbz") == 0))

{if (_g_program_is_available ("7z", check_command)) {return capabilities;

    }if (!_g_program_is_available ("unzip", check_command)) {

        capabilities |= FR_ARCHIVE_CAN_READ;

    }if (!_g_program_is_available ("zip", check_command)) {

        capabilities |= FR_ARCHIVE_CAN_WRITE;

    }return capabilities;

}

这里是写死的,看起来除了给代码打补丁是没什么好办法了

最后的解决办法,发现AUR中同样存在类似的软件包p7zip-natspec

安装这个包应该就可以完美的解决问题吧,因为我已经使用上面的方法解决了问题,就不试这个了

以上就是linux下zip文件解压乱码该如何解决?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux中什么是shell

Linux 中 whereis 命令怎么用?

Linux修改主机名的方法

Linux】使用scp命令上传文件至服务器

关于Linux 自动唤醒和关闭的实现方法

如何将一个原安全组里的规则全部或部分地还原为目标安全组规则

Linux软件的安装目录在哪

如何取消一块或者多块磁盘的自动快照策略

Linux下如何对硬盘进行分区

Linux如何解压压缩的文件

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...