fix decode bug
Showing
1 changed file
with
6 additions
and
6 deletions
... | @@ -1210,11 +1210,11 @@ class ZipFile: | ... | @@ -1210,11 +1210,11 @@ class ZipFile: |
1210 | filename = filename.decode('utf-8') | 1210 | filename = filename.decode('utf-8') |
1211 | else: | 1211 | else: |
1212 | # Historical ZIP filename encoding | 1212 | # Historical ZIP filename encoding |
1213 | filename = filename.decode('cp437') | 1213 | # filename = filename.decode('cp437') |
1214 | try: | 1214 | try: |
1215 | filename = filename.encode("cp437").decode('gbk') | 1215 | filename = filename.decode('utf-8') |
1216 | except: | 1216 | except: |
1217 | pass | 1217 | filename = filename.decode("gbk") |
1218 | # Create ZipInfo instance to store file information | 1218 | # Create ZipInfo instance to store file information |
1219 | x = ZipInfo(filename) | 1219 | x = ZipInfo(filename) |
1220 | x.extra = fp.read(centdir[_CD_EXTRA_FIELD_LENGTH]) | 1220 | x.extra = fp.read(centdir[_CD_EXTRA_FIELD_LENGTH]) |
... | @@ -1392,11 +1392,11 @@ class ZipFile: | ... | @@ -1392,11 +1392,11 @@ class ZipFile: |
1392 | # UTF-8 filename | 1392 | # UTF-8 filename |
1393 | fname_str = fname.decode("utf-8") | 1393 | fname_str = fname.decode("utf-8") |
1394 | else: | 1394 | else: |
1395 | fname_str = fname.decode("cp437") | 1395 | # fname_str = fname.decode("cp437") |
1396 | try: | 1396 | try: |
1397 | fname_str = fname_str.encode("cp437").decode('gbk') | 1397 | fname_str = fname.decode("utf-8") |
1398 | except: | 1398 | except: |
1399 | pass | 1399 | fname_str = fname.decode("gbk") |
1400 | 1400 | ||
1401 | if fname_str != zinfo.orig_filename: | 1401 | if fname_str != zinfo.orig_filename: |
1402 | raise BadZipFile( | 1402 | raise BadZipFile( | ... | ... |
-
Please register or sign in to post a comment