跳至内容
MNBVC-Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
踩坑记录:20230724zipfile采用默认cp437导致文件名乱码
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
==== zipfile采用默认cp437导致文件名乱码==== === 背景 === 由于网盘下载下来压缩包比较多,一个一个手动解压比较费时,所以等战拜托我写了一个针对目录下所有压缩包的自解压程序。 === 经过 === 在运行这个自动解压所有压缩包的时候,等战发现有一部分压缩包解压出来的是乱码文件名,而内容并非是乱码。 === 结果 === 经过百度查找以及查看zipfile的源代码,发现对于所有非utf8编码的文件名,zipfile库对文件名的处理都是:\\ filename = filename.decode('cp437')\\ 因为cp437是一种无论二进制长什么样子都会正常解码的编码,所以未报错,而是在文件夹内生成对应的乱码文件名。 于是我利用cp437这种可以完美解码的特性,可以不修改zipfile库,把文件名重新编码成二进制,调用charset_mnbvc库进行编码检测,从而使解压的文件名正常。
踩坑记录/20230724zipfile采用默认cp437导致文件名乱码.txt
· 最后更改:
2025/06/02 15:35
由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部