java壓縮文件時(shí)出現(xiàn)亂碼怎么辦?其實(shí)要解決這個(gè)問題也不難,這篇文章給出了相對(duì)應(yīng)的分析和解答,下面我們一起來看看解決方法。用java來打包文件生成壓縮文件,有兩個(gè)地方會(huì)出現(xiàn)亂碼:
目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、屏山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
1、內(nèi)容的中文亂碼問題:修改sun的源碼。使用開源的類庫(kù)org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,這兩個(gè)類ant.jar中有,可以下載使用即可。
2、壓縮文件注釋的中文亂碼問題:zos.setComment("中文測(cè)試");通過使用設(shè)置編碼的方法(zos.setEncoding("gbk");)發(fā)現(xiàn)問題,測(cè)試項(xiàng)目的編碼方式為gbk,而默認(rèn)編碼是utf-8。
org.apache.tools.zip.ZipOutputStream默認(rèn)使用項(xiàng)目的編碼方式,通過setEncoding方法改成gbk即可解決。
java壓縮文件代碼:
package com.compress; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; public class CompressEncodingTest { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { File f = new File("中文測(cè)試.txt"); ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream( new FileOutputStream("zipTest.zip"), 1024)); zos.putNextEntry(new ZipEntry("中國(guó)人.txt")); DataInputStream dis = new DataInputStream(new BufferedInputStream( new FileInputStream(f))); zos.putNextEntry(new ZipEntry(f.getName())); int c; while ((c = dis.read()) != -1) { zos.write(c); } zos.setEncoding("gbk"); zos.setComment("中文測(cè)試"); zos.closeEntry(); zos.close(); } }
到此為止, 關(guān)于java壓縮文件時(shí)出現(xiàn)亂碼的解決方法有了一個(gè)基礎(chǔ)的認(rèn)識(shí), 但是對(duì)于具體的使用方法還是需要多加鞏固和練習(xí),如果想了解更多相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊。
標(biāo)題名稱:java壓縮文件時(shí)出現(xiàn)亂碼怎么辦
網(wǎng)站鏈接:http://jinyejixie.com/article24/ppegje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)