问题分析:
使用Python的zipfile库解压包含中文文件名的压缩包时出现了乱码的情况,原本代码为:
target_folder = os.path.dirname(parse_path)
with zipfile.ZipFile(parse_path, 'r') as zip_ref:
zip_ref.extractall(target_folder)
解决方案:
其中target_folder是存储解压缩文件的路径。parse_path代表待解压缩的.zip压缩包。修改代码为:
target_folder = os.path.dirname(parse_path)
with zipfile.ZipFile(parse_path, 'r') as zip_ref:
for file_info in zip_ref.infolist():
# 解决中文文件名乱码问题
file_info.filename = file_info.filename.encode('cp437').decode('gbk')
zip_ref.extract(file_info, target_folder)
用在解压缩前使用decode('utf-8')
对文件名进行解码即可。