Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Teilen Sie die Lösung für das Problem verstümmelter Zeichen beim Dekomprimieren von ZIP-Dateien unter Linux

Teilen Sie die Lösung für das Problem verstümmelter Zeichen beim Dekomprimieren von ZIP-Dateien unter Linux

黄舟
黄舟Original
2017-06-02 10:25:192903Durchsuche

In diesem Artikel wird hauptsächlich beschrieben, wie das Problem der Dekomprimierung von zip-Dateien unter Linuxverstümmelten Zeichen gelöst werden kann es einmal.

Ursache

Da das Zip-Format das Kodierungsformat nicht angibt, ist die Kodierung in der unter Windows generierten Zip-Datei GBK/GB2312, usw., so dass diese ZIP-Dateien beim Dekomprimieren unter Linux verstümmelt erscheinen, da die Standardkodierung unter Linux UTF8 ist.

Lösung 1

Verwenden Sie 7z zum Dekomprimieren.

Installierenp7zip und convmv

# fedora
$ su -c 'yum install p7zip convmv'
# ubuntu
$ sudo apt-get install p7zip convmv

Führen Sie den Befehl zum Dekomprimieren aus

# 使用7z解压缩
$ LANG=C 7za x your-zip-file.zip
# 递归转码
$ convmv -f GBK -t utf8 --notest -r .

Lösung 2

Die unter Windows komprimierten Dateien verwenden zum Komprimieren der Dateien die Systemstandardkodierung Chinesisch. Da die ZIP-Datei ihre Kodierung nicht angibt, wird das Entpacken unter Linux im Allgemeinen mit der Standardkodierung dekomprimiert und der chinesische Dateiname wird verstümmelt.

Obwohl jemand dies im Jahr 2005 als Fehler gemeldet hat, war auf der offiziellen Website von info-zip keine automatische Erkennung der Kodierung vorgesehen. Vielleicht hielten sie dies nicht für ein Problem. Sun hat den gleichen Ansatz für das Zip-Kodierungsproblem gewählt, das in Java seit N Jahren besteht.

Es gibt zwei Möglichkeiten, das Problem zu lösen:

1. Entpacken Sie die Datei mit dem Befehl „unzip line“ und geben Sie den Zeichensatz
unzip -O CP936 xxx.zip (GBK, GB18030 können ebenfalls verwendet werden)


Interessant ist, dass es im Entpack-Handbuch keine Beschreibung dieser Option gibt und entpacken -- help hat eine einfache Zeile für diesen Parameter zur Veranschaulichung.

2. Geben Sie in der Umgebungsvariablen

den Parameter „unzip“ an und zeigen Sie die Datei immer im angegebenen Zeichensatz an.

Fügen Sie 2 zu /etc hinzu /environment Zeile

, damit der Gnome-Desktop-Archivdateimanager (File-Roller) unzip verwenden kann, um Chinesisch normal zu dekomprimieren, File-Roller selbst kann die Kodierung jedoch nicht so einstellen, dass sie zum Entpacken übergeben wird.

Das obige ist der detaillierte Inhalt vonTeilen Sie die Lösung für das Problem verstümmelter Zeichen beim Dekomprimieren von ZIP-Dateien unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn