Linux下解压zip文件乱码的解决方案

在Linux下打开或解压从Windows系统拷贝的zip文件,中文部分乱码,这个问题的根本原因是,windows下默认gb2312与linux中默认utf-8不兼容。

Ark 是KDE默认的解压缩软件,出现乱码的直接原因是Ark中用于zip打开和解压的插件不支持gb2312, 解决方案为:

  1. 安装p7zip-natspec(cn源里面有此软件)

    1
    2
    sudo pacman -S ark
    sudo pacman -S p7zip-natspec unarchiver lzop lrzip arj

  2. 在Ark中禁用libzip插件(该插件优先级高于p7zip): Ark菜单→设置→配置Ark→插件→取消Libzip插件对应的复选框→应用。同时应当确保p7zip插件使用中。

  3. 其他选择,使用unzip-natspecunzip-iconv.

  1. 安装p7zip-natspec(cn源里面有此软件)

    1
    2
    sudo pacman -S file-roller
    sudo pacman -S p7zip-natspec unarchiver lzop lrzip arj

  2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件, 即在/etc/environment中加入

    /etc/environment
    1
    2
    UNZIP="-O CP936"
    ZIPINFO="-O CP936"

这样Gnome桌面的归档文件管理器(file-roller)可以正常使用unzip解压中文,但是file-roller本身并不能设置编码传递给unzip。

如果您习惯于使用命令,由于已经安装了unarchiver, 所以直接使用命令unar解压zip文件也是可以解决文件名乱码问题的,这在所有Linux中都是一个通用的方案。