Maison >Opération et maintenance >exploitation et maintenance Linux >Comment résoudre le problème des caractères tronqués lors de la décompression de fichiers zip sous Linux ?
Comme le format d'encodage n'est pas spécifié dans le format zip, l'encodage dans les fichiers zip générés sous Windows est GBK/GB2312, etc. Par conséquent, ces fichiers zip auront des caractères tronqués lorsqu'ils seront décompressés sous Linux, car l'encodage par défaut sous Linux est UTF8.
Il existe actuellement une méthode de décompression -O cp936 qui circule sur Internet, mais certaines décompressions n'ont pas l'option -O.
La version que j'utilise, la version unzip 6.0 modifiée par Debian, a cette option
En raison de problèmes d'encodage, les fichiers chinois dans le fichier zip apparaîtront tronqués lorsqu'ils seront décompressés sous Linux
Si vous utilisez archlinux, utilisez AUR pour installer unzip-natspec afin de résoudre ce problème
À ce stade, utilisez unzip xxx.zip pour décompresser correctement le fichier
puis faites-le fonctionner dans le gestionnaire d'archives file-roller, chinois Le nom est toujours tronqué On dit que c'est parce que file-roller utilise préférentiellement p7zip
Le problème est résolu après la suppression de p7zip
Cependant, je Je souhaite également pouvoir utiliser le progiciel p7zip en même temps. Quelqu'un sait-il comment résoudre ce problème ?
Téléchargez le code à partir d'ici pour étudier et trouver une telle logique
/* give priority to 7z, unzip and zip that supports ZIP files better. */if ((strcmp (mime_type, "application/zip") == 0)|| (strcmp (mime_type, "application/x-cbz") == 0)) {if (_g_program_is_available ("7z", check_command)) {return capabilities; }if (!_g_program_is_available ("unzip", check_command)) { capabilities |= FR_ARCHIVE_CAN_READ; }if (!_g_program_is_available ("zip", check_command)) { capabilities |= FR_ARCHIVE_CAN_WRITE; }return capabilities; }
Il semble qu'il n'y ait pas de bon moyen sauf de patcher le. code
Solution finale, j'ai trouvé qu'il existe également un package logiciel similaire p7zip-natspec dans AUR
L'installation de ce package devrait parfaitement résoudre le problème, car j'ai résolu le problème en utilisant la méthode ci-dessus , je n'essaierai pas ça
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!