亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Maison Java javaDidacticiel ZipinputStream n'a pas réussi à décompresser le nom du fichier chinois? Comment définir correctement le jeu de caractères?

ZipinputStream n'a pas réussi à décompresser le nom du fichier chinois? Comment définir correctement le jeu de caractères?

Apr 19, 2025 pm 04:33 PM
linux windows apache système opérateur macos cos red

ZipinputStream n'a pas réussi à décompresser le nom du fichier chinois? Comment définir correctement le jeu de caractères?

Décompression zipinputstream des noms et solutions de fichiers chinois

De nombreux développeurs rencontrent souvent des problèmes de codage de caractères lors de l'utilisation ZipInputStream pour décompresser les packages compressés Zip contenant des noms de fichiers chinois ou des noms de dossiers, ce qui conduit à des défaillances de décompression et invite des erreurs comme "l'entrée mal formée: 1, longueur: 1". Cet article analysera ce problème en profondeur et fournira des solutions efficaces.

La racine du problème est que le jeu de caractères spécifié dans le constructeur ZipInputStream n'est pas utilisé pour décompresser le nom de fichier codage à l'intérieur du fichier, mais pour lire les informations du répertoire central du fichier zip lui-même. Le codage du répertoire central dépend de l'environnement dans lequel le package compressé est créé et du système d'exploitation. Les systèmes Windows utilisent généralement le codage GB2312 ou GBK, tandis que les systèmes MacOS et Linux utilisent généralement le codage UTF-8.

Par conséquent, si un package de compression zip est créé sous Windows, son répertoire central est susceptible d'être codé à l'aide de GBK. Même si le codage UTF-8 est spécifié dans le code, ZipInputStream ne parvient toujours pas à analyser correctement le répertoire central codé par GBK, entra?nant une défaillance de décompression.

Solution:

Pour les packages ZIP créés par Windows Systems, il est recommandé d'utiliser le codage GBK pour lire le répertoire central:

 FileInputStream Input = new FileInputStream (TargetPath);
ZipinputStream zipinputStream = new ZipinputStream (new BufferedInputStream (entrée), charset.forname ("gbk"));

étant donné que le codage GBK est compatible avec GB2312, cette méthode s'applique également au répertoire central du codage GB2312.

Solutions multiplateformes:

Pour écrire un code compatible multiplateforme plus robuste, la bibliothèque Apache Commons Compress est recommandée. Cette bibliothèque offre des fonctions de compression / décompression plus puissantes, qui peuvent gérer automatiquement les packages de compression ZIP de différents codages, évitant efficacement les défaillances de décompression en raison des différences de jeu de caractères. Il peut détecter et traiter automatiquement les informations de répertoire central de différents codes, simplifier le processus de développement et améliorer la fiabilité du code.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1488
72
Quels sont les principaux avantages et inconvénients de Linux vs Windows? Quels sont les principaux avantages et inconvénients de Linux vs Windows? Aug 03, 2025 am 02:56 AM

Linux convient à l'ancien matériel, a une haute sécurité et est personnalisable, mais a une compatibilité logicielle faible; Le logiciel Windows est riche et facile à utiliser, mais a une utilisation élevée des ressources. 1. En termes de performances, Linux est léger et efficace, adapté aux anciens appareils; Windows a des exigences matérielles élevées. 2. En termes de logiciels, Windows a une compatibilité plus large, en particulier les outils et les jeux professionnels; Linux doit utiliser des outils pour exécuter certains logiciels. 3. En termes de sécurité, la gestion des autorisations Linux est plus stricte et les mises à jour sont pratiques; Bien que Windows soit protégé, il est toujours vulnérable aux attaques. 4. En termes de difficulté d'utilisation, la courbe d'apprentissage Linux est raide; L'opération Windows est intuitive. Choisissez en fonction des exigences: choisissez Linux avec les performances et la sécurité, et choisissez Windows avec compatibilité et facilité d'utilisation.

Le guide ultime du jeu haute performance sur Linux Le guide ultime du jeu haute performance sur Linux Aug 03, 2025 am 05:51 AM

Choosepop! _OS, Ubuntu, Nobaralinux, OrarchlinuxForoptimalgaming Performance withinmimaloverhead.2.Installofficialnvidiapropriétarydriversfornvidiagpus, assurept-t-to-datememesaandkernerserforamdindelgpus.3,EBablePheperformAlect

Comment activer Hyper-V dans Windows Comment activer Hyper-V dans Windows Aug 04, 2025 am 12:53 AM

Hyper-VcanbeenableDOnwindowspro, Enterprise, OreducationEditionsBymeetingSystemRequirements incluant64-bitcpuwithslat, vmMonitorModeExtension, bios / uefiVirtualizationyabled, andatleast4gbram.20

Comment résoudre TouchPad ne fonctionnant pas sur les problèmes sur Windows? Comment résoudre TouchPad ne fonctionnant pas sur les problèmes sur Windows? Aug 05, 2025 am 09:21 AM

Checkifthetouchpadisdisabledbyusingthefunctionkey(Fn F6/F9/F12),adedicatedtogglebutton,orensuringit’sturnedoninSettings>Devices>Touchpad,andunplugexternalmice.2.UpdateorreinstallthetouchpaddriverviaDeviceManagerbyselectingUpdatedriverorUninstal

Comment modifier la résolution d'écran dans Windows Comment modifier la résolution d'écran dans Windows Aug 02, 2025 pm 03:08 PM

ClicktheDeskTopandSelect "DisplaySettings" toOpenTheDisplayOptions.2

Comment installer un certificat SSL Let's Encrypt sur Apache? Comment installer un certificat SSL Let's Encrypt sur Apache? Aug 04, 2025 am 09:47 AM

Installer CERTBOT et son plug-in Apache; 2. Exécutez CERTBOT pour obtenir le certificat et configurer le nom de domaine; 3. Configurer éventuellement la redirection automatique de HTTP vers HTTPS; 4. Configurer le renouvellement automatique et passer le test à sec; 5. Vérifiez l'installation et assurez la configuration normale de rechargement d'Apache. Une fois le certificat déployé avec succès, le renouvellement sera automatiquement géré. Une fois l'ensemble du processus terminé, l'accès HTTPS sécurisé peut être atteint.

Comment installer Go sur Windows, macOS et Linux? Comment installer Go sur Windows, macOS et Linux? Aug 03, 2025 am 02:44 AM

Onwindows, téléchargementthego.msiinstallerfromtheofficialsite, runittoinstallgoandsetpathautomatiquement, therevrifywithoversionincommandpromptorpowershell.2.onmacos, soit usetheofficial.pkginstallerfromgo.dev / dl / orinstallviahomebrewwithbrewinstallgogo, qui / orinstallviahomebrewwithbrewinstallgogogogo, qui, OrinstallviahomomeBrewwithBrewingo

Comment configurer Keepalive dans Apache? Comment configurer Keepalive dans Apache? Aug 03, 2025 am 07:06 AM

Keepaliveon permet des connexions persistantes; 2.MaxkeepaliveRequests100 définit le nombre maximum de demandes par connexion; 3.EnkeIveVeTimeOut5 Définit le délai d'attente pour les demandes ultérieures, redémarrez Apache après la configuration et utilisez des outils de développeur Curl ou Browser pour vérifier si Keepalive est efficace pour optimiser les performances du serveur.

See all articles