百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

如何在Ubuntu 20.04操作系统中解决Zip文件打开乱码的问题

bigegpt 2024-08-11 14:22 6 浏览

之前一直都知道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归档管理器软件,就没有文件名乱码的现象了,如有其他问题,欢迎交流。

相关推荐

5分钟搭建公网https网页文件服务器,免费权威TLS证书

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习前言本文主要讲解如何快速搭建一个https网页文件服务器,并免费申请权威机构颁发的tls证...

nginx负载均衡配置(nginx负载均衡配置两个程序副本)

Nginx是什么没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(UniformResources...

19《Nginx 入门教程》Nginx综合实践

今天我们将基于Nginx完成两个比较有用的场景,但是用到的Nginx的配置非常简单。内部Yum源搭建内部Pip源搭建1.实验环境ceph1centos7.6内网ip:172.16....

Nginx性能调优与优化指南(nginx优化配置大全)

Nginx性能调优需要结合服务器硬件资源、业务场景和负载特征进行针对性优化。以下是一些关键优化方向和具体配置示例:一、Nginx配置优化1.进程与连接数优化nginxworker_process...

C++后端开发必须彻底搞懂Nginx,从原理到实战(高级篇)

本文为Nginx实操高级篇。通过配置Nginx配置文件,实现正向代理、反向代理、负载均衡、Nginx缓存、动静分离和高可用Nginx6种功能,并对Nginx的原理作进一步的解析。当需...

【Nginx】史上最全的Nginx配置详解

Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,http块又包括http全局块和server块。Nginx是非常重要的负载均衡中间件,被广泛应用于大型...

【Nginx】Nginx 4种常见配置实例(nginx基本配置与参数说明)

本文主要介绍nginx4种常见的配置实例。Nginx实现反向代理;Nginx实现负载均衡;Nginx实现动静分离;Nginx实现高可用集群;Nginx4种常见配置实例如下:一、Nginx反向代理配...

使用nginx+allure管理自动化测试报告

allure在自动化测试中经常用来生成漂亮的报告,但是网上及官网上给出的例子都仅仅是针对单个测试用例文件的形式介绍的,实际使用中,自动化测试往往需要包含不止一个产品或项目,本文介绍如何使用nginx+...

nginx配置文件详解(nginx配置文件详解高清版)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

SpringCloud Eureka-服务注册与发现

1.Eureka介绍1.1学习Eureka前的说明目前主流的服务注册&发现的组件是Nacos,但是Eureka作为老牌经典的服务注册&发现技术还是有必要学习一下,原因:(1)一些早期的分布式微服...

微服务 Spring Cloud 实战 Eureka+Gateway+Feign+Hystrix

前言我所在项目组刚接到一个微服务改造需求,技术选型为SpringCloud,具体需求是把部分项目使用SpringCloud技术进行重构。本篇文章中介绍了Eureka、Gateway、Fe...

深度剖析 Spring Cloud Eureka 底层实现原理

你作为一名互联网大厂后端技术开发人员,在构建分布式系统时,是不是常常为服务的注册与发现而头疼?你是否好奇,像SpringCloudEureka这样被广泛使用的组件,它的底层实现原理到底是怎样的...

热爱生活,喜欢折腾。(很热爱生活)

原文是stackoverflow的一则高票回答,原文链接可能之前也有人翻译过,但是刚好自己也有疑惑,所以搬运一下,个人水平有限所以可能翻译存在误差,欢迎指正(如侵删)。尽管classmethod和st...

GDB调试的高级技巧(详细描述gdb调试程序的全过程)

GDB是我们平时调试c/c++程序的利器,查起复杂的bug问题,比打印大法要好得多,但是也不得不说,gdb在默认情况下用起来并不是很好用,最近学习到几个高级点的技巧,分享下:一美化打印先上个例子...

Arduino 实例(二十三)Arduino 给Python 编译器发送信息

1首先Python需要安装Pyserial库,在命令提示符中输入pipintallpyserial若是遇到提示‘pip‘不是内部或外部命令,也不是可运行的程序或批处理文件,则需要设置环境变...