


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

Airdrops in the cryptocurrency field are a marketing promotion method for the project to distribute a certain number of tokens for free to community members or potential users. In this way, the project party hopes to increase the visibility of the tokens and attract more users to participate in the project, thereby expanding the size of the community and increasing the liquidity of the tokens. For users, airdrops provide opportunities to obtain project tokens without initial investment, and are one of the ways to get in touch with and understand new projects in the early stage.

?Many people are easily influenced by market sentiment in digital currency investment, blindly following the trend but not understanding the value of the currency itself. This article will compare and analyze the core mechanisms and values ??of the three mainstream currencies, Bitcoin, Ethereum, and Dogecoin, to help readers establish rational cognition and avoid being misled by short-term fluctuations.

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.

This article will explain the selection of Dogecoin trading platform and the official application download. We will explain in detail how to find and download the application of the trading platform through safe and reliable channels. This process will be presented in the form of step-by-step teaching. Next, we will introduce several mainstream Dogecoin trading platforms in the current market, and combine the general feedback from online users to comprehensively explain their characteristics for reference.

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 you encounter the "DefaultGatewayisNotAvailable" prompt, it means that the computer cannot connect to the router or does not obtain the network address correctly. 1. First, restart the router and computer, wait for the router to fully start before trying to connect; 2. Check whether the IP address is set to automatically obtain, enter the network attribute to ensure that "Automatically obtain IP address" and "Automatically obtain DNS server address" are selected; 3. Run ipconfig/release and ipconfig/renew through the command prompt to release and re-acquire the IP address, and execute the netsh command to reset the network components if necessary; 4. Check the wireless network card driver, update or reinstall the driver to ensure that it works normally.

If the second monitor is not recognized by Windows, first check whether the cable and interface are normal, try to replace the HDMI, DP or VGA cable, confirm the plug-in video output port, and test different interfaces to eliminate compatibility issues; then verify the monitor power and input source settings, and connect the monitor separately to test whether it can be recognized; then enter the Windows display settings and click the "Detection" button, or use Win P to switch the display mode, and update the graphics card driver at the same time; finally check the graphics card specifications to confirm whether it supports multi-screen output to avoid exceeding its maximum output capability.

When encountering the "SYSTEM_SERVICE_EXCEPTION" blue screen error, you do not need to reinstall the system or replace the hardware immediately. You can follow the following steps to check: 1. Update or roll back hardware drivers such as graphics cards, especially recently updated drivers; 2. Uninstall third-party antivirus software or system tools, and use WindowsDefender or well-known brand products to replace them; 3. Run sfc/scannow and DISM commands as administrator to repair system files; 4. Check memory problems, restore the default frequency and re-plug and unplug the memory stick, and use Windows memory diagnostic tools to detect. In most cases, the driver and software problems can be solved first.
