问题分析:
使用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')对文件名进行解码即可。
文章讲述了在使用Python的zipfile库解压包含中文文件名的压缩包时遇到的乱码问题,通过将文件名先解码为UTF-8再转码为GBK格式,解决了这个问题。
3917





