Que dois-je faire si des caractères tronqués apparaissent lors de la décompression d'un fichier zip sous Linux ?

Y2J
Libérer: 2017-05-24 14:16:06
original
2597 Les gens l'ont consulté

Cet article présente principalement comment résoudre le problème de la décompression des fichiers zip et des caractères tronqués sous Linux. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer.

Cause

Le format zip ne précisant pas le format d'encodage, l'encodage dans le fichier zip généré sous Windows est GBK/GB2312, etc., ce qui fait que ces fichiers zip apparaissent tronqués lorsqu'ils sont décompressés sous Linux, car le codage par défaut sous Linux est UTF8.

Solution 1

Utilisez 7z pour décompresser.

Installerp7zip et convmv


# fedora
$ su -c 'yum install p7zip convmv'
# ubuntu
$ sudo apt-get install p7zip convmv
Copier après la connexion

Exécuter la commande pour décompresser


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

Solution 2

Les fichiers compressés sous Windows utilisent l'encodage chinois par défaut du système pour compresser les fichiers. Étant donné que le fichier zip ne déclare pas son encodage, le décompression sous Linux est généralement décompressé avec l'encodage par défaut et le nom du fichier chinois sera tronqué.

Bien que quelqu'un ait signalé cela comme un bug en 2005, le site officiel d'info-zip n'incluait pas la reconnaissance automatique de l'encodage dans le plan. Peut-être qu'ils ne pensaient pas que c'était un problème. Sun a adopté la même approche face au problème du codage zip qui existe en Java depuis N ans.

Il existe 2 façons de résoudre le problème :

1. Décompressez via la commande de ligne de décompression, spécifiez le jeu de caractères
<. 🎜>

unzip -O CP936 xxx.zip (GBK, GB18030 peuvent également être utilisés)


Ce qui est intéressant, c'est qu'il n'y a pas de description de cette option dans le manuel de décompression, et décompressez -- help a une ligne simple pour illustrer ce paramètre.

2. Dans la variable d'environnement

, spécifiez le paramètre de décompression, et affichez et décompressez toujours le fichier dans le jeu de caractères spécifié

Ajoutez 2 à /etc. /environment Line



UNZIP="-O CP936"
ZIPINFO="-O CP936"
Copier après la connexion
pour que le gestionnaire de fichiers d'archive (file-roller) du bureau Gnome puisse utiliser unzip pour décompresser le chinois normalement, mais le fichier -roller lui-même ne peut pas être défini. L'encodage est transmis au décompression.

[Recommandations associées]

1.

Tutoriel vidéo gratuit MySQL

2

Explication détaillée de innodb_index_stats lors de l'importation de données. Erreur lors du conflit de clé primaire de la table

3

Explication des exemples. innodb_autoinc_lock_mode dans mysql

4.

Exemple détaillé d'ajout de nouvelles autorisations utilisateur dans MySQL

5.

Comment Linux détecte-t-il les conditions du réseau du serveur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!