如何在Ubuntu 20.04操作系统(Linux Mint 20 xfce)中解决Zip文件打开乱码的问题

之前一直都知道Ubuntu操作系统中的归档管理器打开Windows系统平台上压缩的Zip文件都会出现乱码的问题,但觉得文件内容不是乱码就没有刻意去解决这个问题;空闲的时候在网上查询解决方案,几乎都是建议使用unzip -O命令来解决,而且也确实有效,但是使用命令行的方式总觉得不太方便。偶然的机会发现自己使用的Deepin 20操作系统不存在这个问题,默认自带的deepin-compressor打开Windows和Linux平台中制作的Zip文件都不会出现文件名乱码的问题,说明是有解决办法的。
由于当前使用的电脑性能比较低,需要使用Linux Mint 20 xfce操作系统,因此考虑使用临时更换软件源为Deepin源的方式来将deepin-compressor安装到Linux Mint中,其他第三方的很多软件使用这种方法成功了,但是对deepin-compressor来说就是另外一回事儿了,安装虽然也能够完成,但是装完后发现软件界面显示异常,打开Zip文件就闪退,而且我的搜狗输入法也已经不能够运行了。我给deepin-compressor的作者发邮件咨询了移植的可行性,他回答也是不确定能否成功,而且解决依赖问题很复杂,极大可能性存在兼容性问题,我虽然得到了这样的回复,但也不甘心,总想尝试一下,在Github中下载了deepin-compressor项目的最新源代码,按照dtkcore、dtkgui、dtkwidget、deepin-compressor的顺序进行了编译并进行安装,编译安装的过程确实比较复杂,安装完成后原来安装的deepin-editor无法打开并且deepin-terminal无法调出右键菜单了,同时通过编译安装的deepin-compressor在启动后标题栏的按钮显示不正常,打开Zip文件就闪退,在解决无望的情况下,只有借助TimeShift软件将操作系统恢复到正常状态;
在准备彻底放弃的时候发现网上有讨论如何使用Ark软件解决Zip解码乱码的问题,但是发现他们都是使用的Arch Linux来解决的,我觉得Arch和Ubuntu本质上是一样的,就参照他们的办法来解决这个问题,发现这种解决方法比编译deepin-compressor源代码的方式简单很多,而且有效,现在将操作方法在下面列出,希望对和我一样想解决这个问题的用户有所帮助,具体步骤如下:
1、首先要下载并安装Ark归档管理器软件,同时下载zip软件包的补丁unzip-natspec,这个补丁通过克隆的方式下载git clone https://aur.archlinux.org/unzip-natspec.git。
2、下载unzip60的源代码并进行解压缩,到官网去下载,下载地址为:https://downloads.sourceforge.net/infozip/unzip60.tar.gz。
3、以源代码打补丁的方式需要用到补丁依赖的软件包natspec,我将natspec相关的几个deb包都下载了下来,并双击安装。下载地址分别为:
     https://launchpadlibrarian.net/484832538/natspec-bin_0.3.0-0astra1ppa1~focal_amd64.deb(后面两个库文件软件包安装完后,再装这个软件包)
     https://launchpadlibrarian.net/484832537/libnatspec0_0.3.0-0astra1ppa1~focal_amd64.deb
     https://launchpadlibrarian.net/484832536/libnatspec-examples_0.3.0-0astra1ppa1~focal_amd64.deb
     https://launchpadlibrarian.net/484832534/libnatspec-dev_0.3.0-0astra1ppa1~focal_amd64.deb
4、另外编译的时候还需要libbz2的开发包,执行sudo apt-get install libbz2-dev进行安装。、
5、将克隆方式下载的补丁文件拷贝到unzip60解压出来的第一级目录中,准备执行打补丁的操作,使用打补丁的命令,逐个文件进行打补丁,具体为:
    patch -p1 -i unzip-6.0-alt-natspec.patch || return 1
    patch -p1 -i overflow-fsize.patch || return 1 #FS#44171
    patch -p1 -i cve20149636.patch || return 1 #FS#44171
    patch -i test_compr_eb.patch || return 1 # FS#43391
    patch -i getZip64Data.patch || return 1 # FS#43300
    patch -i crc32.patch || return 1 # FS#43300
    patch -p1 -i empty-input.patch || return 1 # FS#46955
    patch -p1 -i csiz-underflow.patch || return 1 # FS#46955
    patch -p1 -i nextbyte-overflow.patch || return 1 # FS#46955
6、编译环境的设定,执行命令:export CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DACORN_FTYPE_NFS \
  -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT \
  -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DDATE_FORMAT=DF_YMD \
  -DUSE_BZIP2 -DNATIVE -DNOMEMCPY -DNO_SETLOCALE"
7、执行编译命令:make -f unix/Makefile LOCAL_UNZIP="$CFLAGS" prefix=/usr \
  D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 unzips || return 1
8、执行编译命令:sudo make -f unix/Makefile prefix=/usr INSTALL_PROGRAM="install" install || return 1
9、执行安装命令:sudo install -Dm644 LICENSE /usr/share/licenses/unzip/LICENSE || return 1

10、在ARK软件中点击“设置”中的菜单项“配置Ark”,在对话框的左边点击“插件”,将libzip和p7zip两个插件前的勾选框中的√去掉,如下图所示:


11、在开始菜单中再运行Ark归档管理器软件,就没有文件名乱码的现象了,如有其他问题,欢迎交流。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值