


有些网上下载的压缩包,用电脑的解压软件手动解压后文件名很正常(如下):

可是使用影刀的“解压文件/文件夹”指令执行后,中文字有时出现乱码,或者直接消失了(如下)


文件名编码问题: ZIP 压缩包中的文件名使用的编码方式可能与解压工具默认的编码方式不一致,导致解压后的文件名无法正确显示。解决方法是在解压时手动选择正确的编码方式,或者使用支持自动识别编码的解压工具。
操作系统和解压工具的兼容性问题: 不同的操作系统和解压工具对于中文字符的处理方式可能不同,可能会导致解压后的文件名乱码。解决方法是使用较新版本的解压工具,并确保操作系统和解压工具的语言设置正确。
提示词如下:
请使用gbk编码解压zip文件到指定目录中。
示例:
输入:zip文件路径、目标目录路径、编码方式(gbk)
输出:解压后的文件
import zipfile
import os
def main(args):
#测试例子:
zip_file = r"C:\Users\yanjie\Downloads\20220304_2088421319548304.zip"
unzip_folder = r"C:\Users\yanjie\Downloads\yyyy"
unzip(zip_file,unzip_folder)
def decode_path(path):
'''zipfile解压出现乱码,将乱码的路径编码为UTF8'''
path_name = path.encode('437').decode('gbk')
path_name = path_name.encode('utf-8').decode('utf-8')
return path_name
def unzip(zip_file, unzip_folder):
with zipfile.ZipFile(zip_file, 'r') as zip_ref:
for file_one in zip_ref.filelist:
file_one.filename = decode_path(file_one.filename)
zip_ref.extract(file_one, unzip_folder)