因为编码难点,zip文件中的中文文件在linux下解压会产出乱码

linux下zip文件解压乱码的题材,linuxzip解压乱码

因为编码难题,zip文件中的汉语文件在linux下解压会并发乱码

就算你利用archlinux那么使用AUQX56安装unzip-natspec就足以消除这一个难题

 

这一年,使用unzip xxx.zip就能够正确解压文件

 

接下来在file-roller归档管理器中操作,粤语名称依然是乱码,传说是因为file-roller优用p七zip

 

删去p七zip后难题化解

 

可是小编还想同时能够运用p柒zip软件包,什么人知道那么些题材怎么化解?

 

从这里

    /* 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;
    }

此地是写死的,看起来除了给代码打补丁是没什么好法子了

 

linuxzip解压乱码,解决linux下zip文件解压乱码难点。谈到底的消除办法,发现AU哈弗中千篇1律存在类似的软件包p柒zip-natspec

安装那么些包应该就能够圆满的解决难题啊,因为本身曾经采取方面包车型地铁方法化解了难题,就不试那么些了

 

因为编码难点,zip文件中的普通话文件在linux下解压会并发乱码
倘使您使用archlinux那么使用A…

澳门金沙国际,因为编码难题,zip文件中的粤语文件在linux下解压会出现乱码

原因

假定您使用archlinux那么使用AU帕杰罗安装unzip-natspec就能够化解这几个难题

比方您利用archlinux那么使用AU普拉多安装unzip-natspec就足以缓解那些难点

由于zip格式并未点名编码格式,Windows下转移的zip文件中的编码是GBK/GB231二等,因此,导致这么些zip文件在Linux下解压时出现乱码难点,因为Linux下的暗中认可编码是UTF捌。

斩草除根方案一

 

 

使用7z解压。

本条时候,使用unzip xxx.zip就能够正确解压文件

以此时候,使用unzip xxx.zip就足以正确解压文件

安装p7zip和convmv

 

 

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

接下来在file-roller归档管理器中操作,中文名称依然是乱码,据书上说是因为file-roller优用p⑦zip

然后在file-roller归档管理器中操作,普通话名称依然是乱码,听别人说是因为file-roller优用p7zip

执行一下发令解压缩

 

 

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

删去p柒zip后难点化解

剔除p柒zip后难题一下子就解决了

解决方案2

 

 

在windows上减弱的文本,是以系列暗许编码汉语来压缩文件。由于zip文件中未有注解其编码,所以linux上的unzip1般以暗许编码解压,汉语文件名会出现乱码。

唯独作者还想同时能够利用p7zip软件包,何人知道这么些难题何以缓解?

可是小编还想同时能够利用p柒zip软件包,何人知道那些标题怎样化解?

就算如此200伍年就有人把那报告为bug,
可是info-zip的官方网址未有把自动识别编码列入安插,恐怕他们不以为那是个难点。Sun对java中留存N年的zip编码难题,接纳了同壹的处理方式。

 

 

有二种办法缓解难题:

从这里

从这里

  1. 因而unzip行命令解压,内定字符集
    /* 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;
    }
    /* 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;
    }

unzip -O CP936 xxx.zip (用GBK, GB18030也可以)

此处是写死的,看起来除了给代码打补丁是没什么好格局了

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

诙谐的是unzip的manual中并无那个选项的验证, unzip
–help对那一个参数有一行不难的印证。

 

 

  1. 在环境变量中,内定unzip参数,总是以钦点的字符集突显和平化解压文件

末尾的化解办法,发现AU汉兰达中同样存在类似的软件包p七zip-natspec

终极的消除办法,发现AUOdyssey中平等存在类似的软件包p七zip-natspec

/etc/environment中加入2行

UNZIP="-O CP936"
ZIPINFO="-O CP936"

设置那几个包应该就能够健全的消除难点吧,因为作者已经使用方面包车型地铁秘诀消除了难题,就不试这么些了

设置那些包应该就能够健全的消除难题吗,因为小编曾经应用方面包车型大巴情势消除了难点,就不试这么些了

如此那般Gnome桌面包车型大巴归档文件管理器(file-roller)能够寻常使用unzip解压中文,不过file-roller自己并不可能设置编码传递给unzip。

 

 

上述正是本文的全体内容,希望对大家的读书抱有协理,也冀望我们多多支持脚本之家。

你大概感兴趣的稿子:

  • VMware
    克朗多台Linux机器并配备IP的章程
  • Centos
    Linux七设置静态IP的实例
  • linux
    vps服务器常用服务iptables策略
  • Linux 配置静态IP的法子
  • windows及linux环境下永久修改pip镜像源的点子
  • Linux下IP设置脚本的实例及碰着标题消除办法

相关文章