Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was soll ich tun, wenn beim Dekomprimieren einer ZIP-Datei unter Linux verstümmelte Zeichen angezeigt werden?

Was soll ich tun, wenn beim Dekomprimieren einer ZIP-Datei unter Linux verstümmelte Zeichen angezeigt werden?

Y2J
Y2JOriginal
2017-05-24 14:16:062670Durchsuche

In diesem Artikel wird hauptsächlich beschrieben, wie das Problem der Dekomprimierung von ZIP-Dateien und verstümmelter Zeichen unter Linux gelöst werden kann. Interessierte Freunde können sich darauf beziehen.

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 Archivdateimanager (File-Roller) des Gnome-Desktops unzip verwenden kann, um Chinesisch normal zu dekomprimieren, aber die Datei -roller selbst kann nicht gesetzt werden. Die Kodierung wird an unzip übergeben.

UNZIP="-O CP936"
ZIPINFO="-O CP936"
[Verwandte Empfehlungen]

1.

Kostenloses MySQL-Video-Tutorial

2. Detaillierte Erklärung von innodb_index_stats beim Importieren von Daten Fehler beim Primärschlüsselkonflikt der Tabelle

3.Erläuterung der Beispiele innodb_autoinc_lock_mode in MySQL

4.

Detailliertes Beispiel für das Hinzufügen neuer Benutzerberechtigungen in MySQL

5.

Wie erkennt Linux Servernetzwerkbedingungen

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn beim Dekomprimieren einer ZIP-Datei unter Linux verstümmelte Zeichen angezeigt werden?. 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