LeoWang2021 发表于 2021-4-4 10:50

[python经验] zipfile库中文乱码

By Leo
python版本:Python3.7
问题情境:
这个问题是打算做离线包压缩时遇到的
在自己解决之前在网上也看了许多解决方法但解决的都不是很好 在自己解决后回想起来 改python源码是一种很不好的方案 在其他机器运行报错是可能连原因都找不到 记不得自己更改过了
问题现象
原本的正确文件名:请勿修改任何文件-WatermelonCloud.txt
会变为:╟δ╬≡╨▐╕─╚╬║╬╬─╝■-WatermelonCloud.txt
解决方案
解决namelist乱码
来源
#-*- coding: utf-8 -*-
import zipfile
# 默认模式r,读
azip = zipfile.ZipFile("/Users/a/my_file/feise.zip", 'r')
# 返回所有文件夹和文件
zip_list = azip.namelist()
for zip_file in zip_list:
    print(zip_file)
    print(zip_file.encode('utf-8'))
    try:
      zip_file = zip_file.encode('cp437').decode('gbk')
    except:
      zip_file = zip_file.encode('utf-8').decode('utf-8')
    print(zip_file)
解决.open时因中文乱码导致的找不到文件
将错就错法 将正确的改为和源码一样的乱码
"正确文件名".encode('gbk').decode('cp437')
应用(完整代码)
with f.open("请勿修改任何文件-WatermelonCloud.txt".encode('gbk').decode('cp437'),'r') as sign:
    '''
    处理文件
    '''
第一次发帖没什么经验 只是分享一下自己的经验
如违规请版主谅解 并将会立即改正

52changew 发表于 2021-4-5 17:26

来看看; 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

emptynullnill 发表于 2022-9-16 10:05

这种方式,对于macOS直接压缩成zip的文件解压出来依然有乱码

zm55555 发表于 2022-9-17 08:52

谢谢分享!
页: [1]
查看完整版本: [python经验] zipfile库中文乱码