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 < an 🎜>
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"
Kostenloses MySQL-Video-Tutorial
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!