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

Home Java javaTutorial ZipInputStream failed to decompress Chinese file name? How to set the character set correctly?

ZipInputStream failed to decompress Chinese file name? How to set the character set correctly?

Apr 19, 2025 pm 04:33 PM
linux windows apache operating system macos cos red

ZipInputStream failed to decompress Chinese file name? How to set the character set correctly?

ZipInputStream decompression of Chinese file names and solutions

Many developers often encounter character encoding problems when using ZipInputStream to decompress Zip compressed packages containing Chinese file names or folder names, which leads to decompression failures and prompts errors like "malformed input off : 1, length : 1". This article will analyze this problem in depth and provide effective solutions.

The root of the problem is that the character set specified in the ZipInputStream constructor is not used to decompress the file name encoding inside the file, but to read the central directory information of the Zip file itself. The encoding of the central directory depends on the environment in which the compressed package is created and the operating system. Windows systems usually use GB2312 or GBK encoding, while macOS and Linux systems usually use UTF-8 encoding.

Therefore, if a Zip compression package is created under Windows, its central directory is likely to be encoded using GBK. Even if the UTF-8 encoding is specified in the code, ZipInputStream still fails to parse the GBK-encoded central directory correctly, resulting in decompression failure.

Solution:

For Zip packages created by Windows systems, it is recommended to use GBK encoding to read the central directory:

 FileInputStream input = new FileInputStream(targetPath);
ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(input), Charset.forName("GBK"));

Since GBK encoding is compatible with GB2312, this method also applies to the central directory of GB2312 encoding.

Cross-platform solutions:

To write more robust cross-platform compatible code, the Apache Commons Compress library is recommended. This library provides more powerful compression/decompression functions, which can automatically handle Zip compression packages of different encodings, effectively avoiding decompression failures due to character set differences. It can automatically detect and process central directory information of different codes, simplify the development process, and improve the reliability of the code.

The above is the detailed content of ZipInputStream failed to decompress Chinese file name? How to set the character set correctly?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to install Windows on a Mac without Boot Camp How to install Windows on a Mac without Boot Camp Jul 31, 2025 am 11:58 AM

Without BootCamp, installing Windows on Mac is feasible and works for different chips and needs. 1. First check compatibility: The M1/M2 chip Mac cannot use BootCamp, it is recommended to use virtualization tools; the Intel chip Mac can manually create a boot USB disk and install it in partition. 2. Recommended to use virtual machines (VMs) for M1 and above chip users: Windows ISO files, virtualization software (such as ParallelsDesktop or UTM), at least 64GB of free space, and reasonably allocate resources. 3. IntelMac users can manually install it by booting the USB drive: USB drive, WindowsISO, DiskU is required

How to change the system display language for all users in Windows How to change the system display language for all users in Windows Jul 31, 2025 am 08:18 AM

InstallthedesiredlanguagepackviaSettings→Time&Language→Language&region,ensuring"SetasmyWindowsdisplaylanguage"isselected.2.Changethesystemdisplaylanguageinthesamemenuandrestart.3.OpenControlPanel→Region→Administrativetab,click"

How to Schedule Tasks on Linux with Cron and anacron How to Schedule Tasks on Linux with Cron and anacron Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems,whileanacronensuresperiodictasksrunonsystemsthataren'tcontinuouslypowered,suchaslaptops;1.Usecronforexacttiming(e.g.,3AMdaily)viacrontab-ewithsyntaxMINHOURDOMMONDOWCOMMAND;2.Useanacronfordaily,weekly,o

Step-by-step guide to installing Windows from an ISO file Step-by-step guide to installing Windows from an ISO file Aug 01, 2025 am 01:10 AM

DownloadtheWindowsISOfromMicrosoft’sofficialsite.2.CreateabootableUSBusingMediaCreationToolorRufuswithaUSBdriveofatleast8GB.3.BootfromtheUSBbyaccessingthebootmenuoradjustingBIOS/UEFIsettings.4.InstallWindowsbyselectingcustominstallation,choosingtheco

How to install Windows on a Mac How to install Windows on a Mac Jul 31, 2025 am 10:07 AM

ForIntel-basedMacs,useBootCampAssistanttocreateadual-bootsystemwithWindowsbypreparingaUSBdrive,downloadingaWindowsISO,partitioningthedisk,andinstallingWindowsalongsidemacOSwithsupportdrivers.2.ForAppleSiliconMacs(M1/M2/M3),usevirtualizationsoftwareli

How to check for a new macOS version How to check for a new macOS version Aug 01, 2025 am 05:38 AM

OpenSystemsettings (macosventuraorlater) ORSYSTADPREFERENCES (OlderVersions) FromtheApplemenu.2.Gotogeneral> SoftwareUPDADDADDADDADTSORICTLYOPENTWAREUPENSFWARUPFAREUPFADTEINSYPFERENCES.3.CHECKENAVALLEUPDATES: IFANPDATESLISTED, Clickupdatenow; Fora

How to reset the Microsoft Store in Windows How to reset the Microsoft Store in Windows Jul 31, 2025 am 08:23 AM

ResettheMicrosoftStoreviaSettingsbygoingtoApps>Installedapps,selectingMicrosoftStore,clickingAdvancedoptions,thenRepairandResetifneeded.2.Ifthatfails,re-registertheStoreusingPowerShellasadminwiththecommand:Get-AppXPackage-NameMicrosoft.WindowsStor

How to configure a virtual host in Apache? How to configure a virtual host in Apache? Aug 01, 2025 am 04:16 AM

Create a website directory and add a test page; 2. Create a virtual host configuration file under /etc/apache2/sites-available/, set ServerName, DocumentRoot, etc.; 3. Use a2ensite to enable the site, disable the default site, and reload Apache after testing the configuration; 4. Add a domain name in /etc/hosts during local testing and point to 127.0.0.1; after completing the above steps, visit example.com to see the website content, and the virtual host configuration is successful.

See all articles