From 5ba11de8454b7dbc1cf260911a2628608267a50c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 1 Jan 2011 10:09:32 +0000 Subject: #10801: In zipfile, support different encodings for the header and the filenames. Patch by MvL, test by Eli Bendersky. --- Lib/zipfile.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Lib/zipfile.py') diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 197f0bc6e1..50f484873a 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -930,7 +930,13 @@ class ZipFile: if fheader[_FH_EXTRA_FIELD_LENGTH]: zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH]) - if fname != zinfo.orig_filename.encode("utf-8"): + if zinfo.flag_bits & 0x800: + # UTF-8 filename + fname_str = fname.decode("utf-8") + else: + fname_str = fname.decode("cp437") + + if fname_str != zinfo.orig_filename: if not self._filePassed: zef_file.close() raise BadZipFile( -- cgit v1.2.1