Cet article présente principalement comment résoudre le problème de la décompression des fichiers zip sous linuxcaractères tronqués Il a une certaine valeur de référence à laquelle les amis intéressés peuvent se référer. ça. une fois.
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 le codage 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"
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!