English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
前書き
多くの場合、Windowsでファイルを圧縮すると問題はありませんが、Linuxでは乱文字がよく見られます。以前はUbuntuで`unzip`を使っていました。 -O GBK filename.zip` で解決できます。Fedora に移行してから、一時的にエンコードエラーのある圧縮ファイルを見つけることができませんでした。今夜、書籍のディスクをダウンロードして、またエンコードエラーに直面しました。前の方法を試しても失敗しました。unzipのヘルプを確認してみましたが、まだ解決していません。-O そのパラメータがどうやら Python で解決できる方法を見つけました。共有します。
`.py` 修飾子を持つ新しいファイルを作成し、コードをコピー&ペーストします:
#!/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()
zip ファイルを解凍すると、可愛い中国語が現れます。
python ファイル名.py 解凍するファイル名.zip
まとめ
それでは、この問題はこんなに簡単に解決しました。皆さんは学びましたか?この記事が皆さんの学習や仕事に少しでも役立つことを願っています。何か疑問があれば、コメントで質問してください。