


ZipInputStream failed to decompress Chinese file name? How to set the character set correctly?
Apr 19, 2025 pm 04:33 PMZipInputStream 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!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The pattern in the public chain field shows a trend of "one super, many strong ones, and a hundred flowers blooming". Ethereum is still leading with its ecological moat, while Solana, Avalanche and others are challenging performance. Meanwhile, Polkadot, Cosmos, which focuses on interoperability, and Chainlink, which is a critical infrastructure, form a future picture of multiple chains coexisting. For users and developers, choosing which platform is no longer a single choice, but requires a trade-off between performance, cost, security and ecological maturity based on specific needs.

The acquisition and management of digital assets can be achieved through the official Solana platform and secure storage solutions. 1. Solana's official application platform (solana.com/ecosystem) provides project browsing, official application downloads and developer resources; 2. Its trading platform address is a designated link to facilitate user transactions; 3. Hardware storage devices such as Ledger can ensure private key security offline; 4. Desktop or mobile applications such as Phantom support convenient management; 5. Multi-signature technology improves authorization security; in addition, you can also participate in the digital asset ecosystem by participating in community governance, using decentralized applications, content creation, etc.

When Windows cannot detect a second monitor, first check whether the physical connection is normal, including power supply, cable plug-in and interface compatibility, and try to replace the cable or adapter; secondly, update or reinstall the graphics card driver through the Device Manager, and roll back the driver version if necessary; then manually click "Detection" in the display settings to identify the monitor to confirm whether it is correctly identified by the system; finally check whether the monitor input source is switched to the corresponding interface, and confirm whether the graphics card output port connected to the cable is correct. Following the above steps to check in turn, most dual-screen recognition problems can usually be solved.

Recently, the discussion in the digital asset field has remained hot. Dogecoin DOGE, as one of the most popular focus, has become a question that many people have explored. Where does it "settling down"? What is the relationship with the current leading trading platform, Binance? To answer these questions, we need to conduct in-depth analysis from the two dimensions of the underlying technical logic of digital assets and the platform ecology, rather than just staying in appearance.

The rise of meme coins reflects the key role of community power and social media influence in the cryptocurrency market. 1. Dogecoin was originally a satirical joke and was born in 2013; 2. Driven by tweets from celebrities such as Elon Musk, the attention soared; 3. The market value once reached tens of billions of dollars, becoming a mainstream digital asset. Shiba Inu Coin is positioned as a "dogcoin killer" and has rapidly risen through community-driven strategies, building a decentralized exchange ShibaSwap, and relies on low-priced units to attract a large number of users to participate. Its success also depends on circulation guarantees on mainstream platforms such as Binance, Coinbase, and OKX. The core driving forces of meme coins include: 1. Viral transmission mechanism, rapid spread of information; 2. Enhanced sense of community belonging

The operating system is the basic software for managing hardware resources, running programs, and providing user interaction interfaces. It coordinates the relationship between hardware and software and is responsible for memory allocation, device scheduling, file management and multitasking. Common systems include Windows (suitable for office and gaming), macOS (Apple devices, suitable for creative work), Linux (open source, suitable for developers), and Android/iOS (mobile device system). The choice of ordinary users depends on the usage scenario, such as software compatibility, security and customization requirements. How to view system information: Use winver command for Windows, click on the machine for macOS, use terminal commands for Linux, and find the phone in settings. The operating system is the underlying tool for daily use,

The key steps to install PHP on Windows include: 1. Download the appropriate PHP version and decompress it. It is recommended to use ThreadSafe version with Apache or NonThreadSafe version with Nginx; 2. Configure the php.ini file and rename php.ini-development or php.ini-production to php.ini; 3. Add the PHP path to the system environment variable Path for command line use; 4. Test whether PHP is installed successfully, execute php-v through the command line and run the built-in server to test the parsing capabilities; 5. If you use Apache, you need to configure P in httpd.conf

When encountering the problem of printing task stuck, clearing the print queue and restarting the PrintSpooler service is an effective solution. First, open the "Device and Printer" interface to find the corresponding printer, right-click the task and select "Cancel" to clear a single task, or click "Cancel all documents" to clear the queue at one time; if the queue is inaccessible, press Win R to enter services.msc to open the service list, find "PrintSpooler" and stop it before starting the service. If necessary, you can manually delete the residual files under the C:\Windows\System32\spool\PRINTERS path to completely solve the problem.
