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
Exécuter la commande pour décompresser
# 使用7z解压缩 $ LANG=C 7za x your-zip-file.zip # 递归转码 $ convmv -f GBK -t utf8 --notest -r .
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" ZIPINFO="-O CP936"
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
3Explication 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!