English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Введение
Во многих случаях в Windows при сжатии файлов проблем не возникает, но на Linux могут出现乱码,что довольно часто. Раньше в Ubuntu, чтобы решить эту проблему, можно было использовать команду `unzip -O GBK filename.zip`. После перехода на Fedora пока не встречал сжатые файлы с乱ными символами. Вечером скачал диск с книгой, и снова встретил乱码。Попробовал применить старый способ, но он не сработал. Посмотрел help команды 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, который нужно разархивировать
Обобщение
Хорошо,这个问题就这么简单的解决了, все ли вы научились? Надеюсь, эта статья поможет вам в изучении или работе. Если у вас есть вопросы, вы можете оставить комментарий.