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

首頁(yè) Java java教程 ZipInputStream解壓中文文件名失?。咳绾握_設(shè)置字符集?

ZipInputStream解壓中文文件名失敗?如何正確設(shè)置字符集?

Apr 19, 2025 pm 04:33 PM
linux windows apache 作業(yè)系統(tǒng) macos cos red

ZipInputStream解壓中文文件名失???如何正確設(shè)置字符集?

ZipInputStream解壓中文文件名問(wèn)題及解決方案

許多開(kāi)發(fā)者在使用ZipInputStream解壓包含中文文件名或文件夾名的Zip壓縮包時(shí),常常遭遇字符編碼問(wèn)題,導(dǎo)致解壓失敗,並提示類似“malformed input off : 1, length : 1”的錯(cuò)誤。本文將深入分析此問(wèn)題,並提供有效的解決方案。

問(wèn)題根源在於ZipInputStream構(gòu)造方法中指定的字符集並非用於解壓文件內(nèi)部文件名編碼,而是用於讀取Zip文件本身的中央目錄信息。中央目錄的編碼取決於壓縮包的創(chuàng)建環(huán)境和操作系統(tǒng)。 Windows系統(tǒng)通常使用GB2312或GBK編碼,而macOS和Linux系統(tǒng)通常使用UTF-8編碼。

因此,如果一個(gè)Zip壓縮包是在Windows系統(tǒng)下創(chuàng)建的,其中央目錄很可能使用GBK編碼。即使代碼中指定了UTF-8編碼, ZipInputStream仍然無(wú)法正確解析GBK編碼的中央目錄,從而導(dǎo)致解壓失敗。

解決方案:

針對(duì)Windows系統(tǒng)創(chuàng)建的Zip包,建議使用GBK編碼讀取中央目錄:

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

由於GBK編碼兼容GB2312,此方法同樣適用於GB2312編碼的中央目錄。

跨平臺(tái)解決方案:

為了編寫更健壯的跨平臺(tái)兼容代碼,推薦使用Apache Commons Compress庫(kù)。該庫(kù)提供更強(qiáng)大的壓縮/解壓縮功能,能夠自動(dòng)處理不同編碼的Zip壓縮包,有效避免因字符集差異導(dǎo)致的解壓失敗。 它能自動(dòng)檢測(cè)並處理不同編碼的中央目錄信息,簡(jiǎn)化開(kāi)發(fā)流程,並提升代碼的可靠性。

以上是ZipInputStream解壓中文文件名失???如何正確設(shè)置字符集?的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

幣安Treehouse(TREE幣)是什麼?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 幣安Treehouse(TREE幣)是什麼?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 Jul 30, 2025 pm 10:03 PM

目錄什麼是Treehouse(TREE)? Treehouse(TREE)如何運(yùn)作? Treehouse產(chǎn)品tETHDOR——分散報(bào)價(jià)利率GoNuts積分系統(tǒng)Treehouse亮點(diǎn)TREE代幣和代幣經(jīng)濟(jì)學(xué)概述2025年第三季度路線圖開(kāi)發(fā)團(tuán)隊(duì)、投資者和合作夥伴Treehouse創(chuàng)始團(tuán)隊(duì)投資基金夥伴總結(jié)隨著DeFi的不斷擴(kuò)張,固定收益產(chǎn)品的需求日益增長(zhǎng),其作用類似於債券在傳統(tǒng)金融市場(chǎng)中的作用。然而,在區(qū)塊鏈上構(gòu)建

如何在沒(méi)有訓(xùn)練營(yíng)的Mac上安裝Windows 如何在沒(méi)有訓(xùn)練營(yíng)的Mac上安裝Windows Jul 31, 2025 am 11:58 AM

在沒(méi)有BootCamp的情況下,Mac上安裝Windows是可行的,並且適用於不同芯片和需求。 1.首先檢查兼容性:M1/M2芯片Mac無(wú)法使用BootCamp,建議使用虛擬化工具;Intel芯片Mac可手動(dòng)創(chuàng)建啟動(dòng)U盤並分區(qū)安裝。 2.推薦M1及以上芯片用戶使用虛擬機(jī)(VM):需準(zhǔn)備WindowsISO文件、虛擬化軟件(如ParallelsDesktop或UTM)、至少64GB空閒空間,並合理分配資源。 3.IntelMac用戶可通過(guò)啟動(dòng)U盤手動(dòng)安裝:需USB驅(qū)動(dòng)器、WindowsISO、DiskU

如何更改Windows中所有用戶的系統(tǒng)顯示語(yǔ)言 如何更改Windows中所有用戶的系統(tǒng)顯示語(yǔ)言 Jul 31, 2025 am 08:18 AM

installthedeSiredLanguagePackviaSettings→時(shí)間和語(yǔ)言→語(yǔ)言和區(qū)域,確?!?setasmywindowsdisplaylanguage” Isselected.2.changethesystemdisplaylanguageinthesamemenuandrestart.3.opencontrolpanel→opencontrolpanel→區(qū)域→incruptrativetivetab,click offistrativetab,click offistivetab,click offiveTab,click''

如何使用Cron和Anacron在Linux上安排任務(wù) 如何使用Cron和Anacron在Linux上安排任務(wù) Aug 01, 2025 am 06:11 AM

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

Berachain:流動(dòng)性證明是什麼?有什麼特點(diǎn)? Berachain:流動(dòng)性證明是什麼?有什麼特點(diǎn)? Jul 30, 2025 pm 09:30 PM

目錄什麼是Berachain?什麼是流動(dòng)性證明?流動(dòng)性證明與權(quán)益證明的對(duì)比Berachain的特別之處是什麼?突出特點(diǎn)流動(dòng)性證明(PoL)共識(shí):雙代幣模型:EVM兼容性:BeaconKit框架:激勵(lì)市場(chǎng):技術(shù)架構(gòu)結(jié)論?Berachain是一個(gè)創(chuàng)新的EVM兼容的Layer1區(qū)塊鏈,重新定義了網(wǎng)絡(luò)安全、流動(dòng)性和應(yīng)用價(jià)值之間的關(guān)係。其核心引入了一種名為流動(dòng)性證明(PoL)的新型共識(shí)機(jī)制。這種突破性的方法不僅確保了網(wǎng)絡(luò)安全,還直接激勵(lì)驗(yàn)證者為生態(tài)系統(tǒng)應(yīng)用提供流動(dòng)性,使Berachain有別於傳統(tǒng)的區(qū)塊鏈

從ISO文件安裝Windows的分步指南 從ISO文件安裝Windows的分步指南 Aug 01, 2025 am 01:10 AM

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

如何檢查新的MacOS版本 如何檢查新的MacOS版本 Aug 01, 2025 am 05:38 AM

opensystemsettings(macosventuraorlater)orsystadpreferences(較舊的)fromtheapplemenu.2.gotogeners> softwareUpupdaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddaddadeupentwareupensfensfensfensfendepensffareupfareupfareupfadteinsypferences.3.checkenavalleleupdate:ifanavalleupdate:ifanavalleupdate:ifanpdateSpdatepdatepdatew。福拉

如何重置Windows中的Microsoft商店 如何重置Windows中的Microsoft商店 Jul 31, 2025 am 08:23 AM

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

See all articles