国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 Java java教程 ZipInputStream解壓中文文件名失???如何正確設置字符集?

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

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

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

ZipInputStream解壓中文文件名問題及解決方案

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

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

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

解決方案:

針對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編碼的中央目錄。

跨平臺解決方案:

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何修復Windows中未檢測到的第二個監(jiān)視器? 如何修復Windows中未檢測到的第二個監(jiān)視器? Jul 12, 2025 am 02:27 AM

Windows檢測不到第二個顯示器時,首先要檢查物理連接是否正常,包括電源、線纜插接和接口兼容性,並嘗試更換線材或轉(zhuǎn)接頭;其次通過設備管理器更新或重裝顯卡驅(qū)動,必要時可回滾驅(qū)動版本;接著在顯示設置中手動點擊“檢測”以識別顯示器,確認是否被系統(tǒng)正確識別;最後檢查顯示器輸入源是否切換至對應接口,並確認線纜接入的顯卡輸出口是否正確。按照上述步驟依次排查,通??梢越鉀Q大部分雙屏識別問題。

如何在Windows上安裝PHP 如何在Windows上安裝PHP Jul 15, 2025 am 02:46 AM

安裝PHP在Windows上的關鍵步驟包括:1.下載合適的PHP版本並解壓,推薦使用ThreadSafe版本配合Apache或NonThreadSafe版本配合Nginx;2.配置php.ini文件,將php.ini-development或php.ini-production重命名為php.ini;3.將PHP路徑添加到系統(tǒng)環(huán)境變量Path中以便命令行使用;4.測試PHP是否安裝成功,通過命令行執(zhí)行php-v和運行內(nèi)置服務器測試解析能力;5.若使用Apache,需在httpd.conf中配置P

如何在MACOS更新之前備份Mac? 如何在MACOS更新之前備份Mac? Jul 15, 2025 am 12:33 AM

更新macOS前應備份Mac,1.使用TimeMachine做完整備份,插入外接硬盤並開啟自動定期備份;2.手動備份重要文件到雲(yún)存儲或外部設備,優(yōu)先備份文檔、照片、書籤等關鍵資料;3.創(chuàng)建可啟動的macOS安裝盤用於系統(tǒng)修復或重裝,準備16GBU盤並運行終端命令創(chuàng)建。備份能有效防止更新失敗或數(shù)據(jù)丟失,提前準備更安心。

如何在Apache中啟用HTTP嚴格傳輸安全性(HST)? 如何在Apache中啟用HTTP嚴格傳輸安全性(HST)? Jul 13, 2025 am 01:12 AM

啟用HSTS可強制瀏覽器通過HTTPS訪問網(wǎng)站,提升安全性。 1.在Apache中開啟需先配置HTTPS,然後在站點配置文件或.htaccess中添加Strict-Transport-Security響應頭;2.配置中需設置max-age(如31536000秒)、includeSubDomains和preload參數(shù);3.確保已啟用mod_headers模塊,否則運行sudoa2enmodheaders並重啟Apache;4.可選提交至HSTSPreload列表,但需滿足主站與子域均支持HTTPS

如何使用'關閉”命令 如何使用'關閉”命令 Jul 15, 2025 am 12:26 AM

Linux/macOS的shutdown命令可通過參數(shù)實現(xiàn)關機、重啟、定時操作等。 1.立即關機使用sudoshutdownnow或-h/-P參數(shù);2.定時關機用 時間或具體時間點,取消用-c;3.重啟使用-r參數(shù),支持定時重啟;4.注意需sudo權限,遠程操作謹慎,避免數(shù)據(jù)丟失。

如何在Ubuntu/Debian上安裝Apache? 如何在Ubuntu/Debian上安裝Apache? Jul 13, 2025 am 12:55 AM

安裝Apache在Ubuntu或Debian上的步驟包括:1.更新系統(tǒng)軟件包以確保軟件源最新;2.運行sudoaptinstallapache2安裝Apache服務並檢查其運行狀態(tài);3.配置防火牆允許HTTP/HTTPS流量;4.根據(jù)需要調(diào)整網(wǎng)站文件路徑、修改配置或啟用模塊;5.修改配置後重啟Apache服務生效。整個過程簡單直接,但需注意權限設置、防火牆規(guī)則和配置調(diào)整等關鍵點,以確保Apache正常運行並能通過瀏覽器訪問默認頁面。

Apache的默認Web根目錄是什麼? Apache的默認Web根目錄是什麼? Jul 15, 2025 am 01:51 AM

Apache的默認網(wǎng)頁根目錄在大多數(shù)Linux發(fā)行版中是/var/www/html。這是因為Apache服務器從特定的文檔根目錄提供文件,若未自定義配置,則Ubuntu、CentOS和Fedora等系統(tǒng)使用/var/www/html,而macOS(使用Homebrew)通常為/usr/local/var/www,Windows(XAMPP)則為C:\xampp\htdocs;要確認當前路徑,可檢查Apache配置文件如httpd.conf或apache2.conf,或創(chuàng)建含phpinfo()的P

如何將簡單的HTML文件與Apache一起服務? 如何將簡單的HTML文件與Apache一起服務? Jul 14, 2025 am 12:52 AM

要讓Apache服務一個簡單的HTML文件,首先準備好HTML文件並放到正確目錄。 1.創(chuàng)建一個簡單的HTML文件如index.html或example.html;2.將文件複製到Apache默認根目錄/var/www/html/或自定義路徑;3.確保Apache服務已啟動,並通過瀏覽器訪問測試;4.如需更改網(wǎng)站目錄,修改Apache配置文件中的DocumentRoot和Directory路徑,並重啟服務使配置生效。整個過程需注意文件擴展名、路徑權限及服務狀態(tài),確保各項設置準確無誤後即可成功顯示頁

See all articles