English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo per risolvere il problema di codifica cinese sbagliata durante la decompressione di zip su Fedora con Python

Introduzione

Spesso non ci sono problemi con la compressione dei file in Windows, ma sotto Linux, si incontrano spesso codici sbagliati. Prima su Ubuntu, con `unzip -O GBK filename.zip` si potrebbe risolvere. Dopo aver cambiato Fedora, non ho trovato file compressi con codici sbagliati temporaneamente. Di notte, scaricavo un CD di un libro e ho incontrato di nuovo i codici sbagliati. Il tentativo del metodo precedente non ha avuto successo. Ho guardato l'aiuto di unzip e non c'era più il parametro -O == Ho trovato una soluzione con Python, condivido qui.

Crea un file `.py` e incolla il codice: }}

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import zipfile
print "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
  utf8name=name.decode('gbk')
  print "Extracting " + utf8name
  pathname = os.path.dirname(utf8name)
  if not os.path.exists(pathname) and pathname!= "":
    os.makedirs(pathname)
  data = file.read(name)
  if not os.path.exists(utf8name):
    fo = open(utf8name, "w")
    fo.write(data)
    fo.close
file.close()

Esegui la decompressione del file zip e appare il carino testo cinese.

Il nome del file python.py deve essere decompresso. Il nome del file da decomprimere è.zip

Conclusione

Bene, questo problema è stato risolto in modo semplice. Avete imparato? Spero che questo articolo possa aiutarvi nella vostra apprendimento o lavoro. Se avete domande, potete lasciare un commento per discuterle.

Ti potrebbe interessare