python zipfile 乱码_python zipfile文件名乱码问题

zipfile文件名乱码问题

接到一个解压zip文件的任务。在几百G的文件里面找到zip文件,并解压到当前目录。这个任务看似很简单,但是全都是坑的。

被坑的第一点,文件名乱码。搜索博客里面的教程,一般有两种方法。1、修改源码,把cp437编码换成gbk。2、decode cp437 再 encode gbk。

这两种方案都只能适应一些场景而已,因为zip的压缩工具本来就是混乱的。

我来说说第一种方案的坑点,并非所有的zip文件都是通过flag_bits来控制是utf-8还是别的编码的。例如,一个flag_bits标记为非utf-8的文件名,你直接修改源码转gbk,则很有可能会gbk can not decode error 。

第二种,方案同样有像似的问题。一个utf-8的文件名因为flag_bits的错误。然后,你就无法区分是到底是 decode cp437 还是 utf-8。

所以,正确的方法是读取flag_bits,decode cp437 或者 utf-8 还原成二进制数据。然后,再使用chardet猜测编码,如果猜测不出来,应该指定utf-8编码、然后再使用gbk。

是的,这个编码还是要靠猜的。

解压文件的另外一个坑点

我也不知道为啥,压缩文件的路径上,有的文件夹的尾部是一个空格。这导致,解压后的文件夹。有内容,但是打开是看不到文件的。

我使用rar工具进行解压。发现,工具会把尾部的空格替换成下划线。

结果

经过这些修改,终于这几百G的文件,扫描出来的zip,可以成功解压。有60G大小。而且,文件名都可以还原。没有乱码的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php时间戳本周,php获取今天,昨天,本周,上周,本月,上月的起止时间戳

如何使用php获取今天,昨天,本周,上周,本月,上月的起止时间戳,我们来看看下面的函数。date_default_timezone_set("Asia/Shanghai"); //设置为上海时间 否则开始时间会相差8个小时//获取今日开始时…

directshow 旋转_宜昌中心加工机+A:B型号,高速旋转接头加工

杭州浙稳贺机械配件有限公司为您详细解读MrGAtc宜昌中心加工机A:B型号的相关知识与详情,但是,0.1-0.15 N/ mm范畴的密封唇载荷对新的密封是可承受的;关于80mm曲径的轴,那转换为25-40N范畴的总径向载荷。很多旋转接头弹性体唇形密封…

python压缩文件夹为zip_python打包压缩文件夹zip+组装文件夹

无意间想到的一个需求,然后就顺手写了写,留下来,方便以后用列表版:(基本没用,仅提供思路,字典版稍微改动可以直接用)大体需求:把重复的文件名进行改名,达到浏览器下载相同文件的效果…

php注册树模式,php设计模式-注册树模式

注册树模式概念注册树模式也叫注册模式或注册器模式。注册树模式将对象实例注册到一棵全局的对象树上,需要的时候从对象树上获取即可。注册树模式优点单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在,存在则返回对象&#xf…

jsp是在html里面嵌入哪种代码?_奶茶店铺用哪种制冰机才合适?

像在这样炎炎的夏日,温度在直线飙升,茶饮市场最近可谓是异常火,店铺人流量一旦增多,还能保证每一杯饮品的质量吗?还能保证门店的制冰机产量能够跟上需求节奏吗?奶茶店铺用哪种制冰机才合适?今天…

redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...

Redis如何保证高并发,高可用?高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求多从负责读请求…

php 继承多个接口,PHP接口多继承及tarits实现多继承效果的方法

本文实例讲述了PHP接口多继承及tarits实现多继承效果的方法。分享给大家供大家参考,具体如下:接口多继承在PHP的面向对象中,接口可以继承接口。PHP类只能继承一个父类(单继承),但是接口可以实现多继承,可以继承一个或者…

run till exit from #0_华为认证hcip H13821 v2.0云服务考试真题每日一练(一)

1.微服务云应用平台(ServiceStage),可以完成以下哪些功能?(多选)A.创建应用依赖计算资源B.使用 AOS 模板自动化应用编排C.查看应用各项指标D.在线可视化升级应用E.容器应用需要自己在 Service Storage 上搭建容器管理平台,比如需自己搭建 kubernetes 管理 docker 容器应用Answ…

java+boolean+属性,java – 从属性中获取int,float,boolean和string

如果您有一类配置值,例如常量类,并且要从配置(属性)文件加载所有值,则可以创建一个小帮手类并使用反射:public class ConfigLoader {public static void load(Class> configClass, String file) {try {Properties props new P…

什么笔记本电脑好用_苹果笔记本好用吗?苹果笔记本怎么样?

阅读本文前,请您先点击上面的蓝色字体“科技论吖”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注!苹果笔记本好用吗苹果笔记本好用吗?用苹果电脑最大的好处就…

python将文本文件加密后输出_Python:将Casear密码和柱状转置密码的加密输出写入.txt文件...

我希望这很容易解决 . 我使用Python在Windows Powershell中获得的错误如下:Traceback (most recent call last): File "[filename.py]", line 66, in main(ciphertext) NameError: name ciphertext is not defined我的代码:def main():# ciphe…

mui请求php,PHP 怎样处理mui.ajax POST过来的数据?

处理登录*/var doLoginfunction(){plus.nativeUI.showWaiting("登陆中...");if(document.getElementById("tel").value && document.getElementById("pass").value){var teldocument.getElementById("tel").value;var passhex…

apple ii 模拟器 mac_苹果自研芯片Mac价格曝光

11月3日凌晨,苹果又在官网宣布了今年秋季的第三场新品发布会将在北京时间2020年11月11日凌晨2点举行,这次发布会预计会带来搭载苹果自研Apple Silicon芯片的Mac产品。彭博社的报道显示,这次的新品发布会将会推出三款产品,分别是13…

python rpa_(RPA学习)Python 之 Pathlib 模块

原标题:(RPA学习)Python 之 Pathlib 模块艺赛旗 RPA9.0全新首发免费下载 点击下载http://www.i-search.com.cn/index.html?fromline9读文件和写文件在我们使用 open 来操作文件读写操作的时候, 不仅可以使用字符串格式的路径,对于 pathlib 生成的路径完…

win10文件夹加密_(十六)小众但好用:免费开源免注册的同步盘加密工具 Cryptomator...

之前写过同步盘加密工具 boxcryptor,今天给大家推荐另一款开源免费多平台的同步盘加密工具 Cryptomator。节省时间,直接开始。Cryptomator 官方网站:点击这里首先简单对比一下 Cryptomator 和 boxcryptor。Cryptomator 加密原理和 boxcryptor…

iis7 php5 isapi配置,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程

说到PHP环境配置与安装,通常以Apache搭载PHP配置为主,随着PHP版本不断更新,对Windows IIS平台的支持也越来越好,在Windows IIS平台上配置安装PHP环境也越来越方便。  在完成Windows 7上搭建ApachePHPMysql环境搭建后&#xff0c…

simulink仿真及代码生成技术入门到精通_Simulink仿真零基础入门到精通实用教学教程 自学全套...

Simulink仿真零基础入门到精通实用教学教程 自学全套,以教程文字为主,毕业论文和报告均可以借鉴。Simulink是电气工程必学的模型仿真专业工具软件,非常的实用。小编在全网中搜索都没有找到非常系统的学习教程和教材,想学习却找不到…

plupload怎么设置属性_店铺收银系统怎么用?好收银系统能提升店铺效率

经营一家店铺,无论是小型便利店还是大型超市,都少不了使用收益系统,那么常用的店铺收银系统要怎么用呢?店铺收银系统怎么用一款好用的收银系统,是可以起到提升店铺首页效率的,现在信息时代,不少收银系统开…

php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

CTF中常见php-MD5()函数漏洞1.数字与字符串之间的比较var_dump( 0 "a" );var_dump( "0" "a" );第一个返回的是 true ,第二个返回的是 false因为php把字母开头的转化为整型时,转化为0, 前面数字后面字母的话就…

spring 2.0核心技术与最佳实践 pdf_推荐 Spring Boot 实践学习案例大全 数据缓存 和中间件 安全权限...

概况spring boot 实践学习案例spring boot 初学者及核心技术巩固的最佳实践目录『 Spring Boot 2 快速教程 』Spring Boot 2:WebFlux集成 ThymeleafSpring Boot 2:WebFlux集成 MongodbSpring Boot 2:WebFluxRestfulCRUD实践Spring Boot 2&…