首頁 > Java > Java基礎 > 主體

java壓縮亂碼

angryTom
發布: 2019-11-15 11:50:16
原創
2266 人瀏覽過

java壓縮亂碼

java壓縮亂碼

#通常用java來打包檔案產生壓縮檔案後會出現內容的中文亂碼問題,這個問題網路上很多人給了解決方法,主要有兩種方法:

一是修改sun的原始碼;

二是使用開源的類別庫org.apache .tools.zip.ZipOutputStreamorg.apache.tools.zip.ZipEntry,這兩個類別ant.jar中有,可以直接下載使用即可。

毫無疑問,選擇後者更方便,org.apache.tools.zip.ZipOutputStream預設使用專案的編碼方式,理論上講utf-8也是支援中文的,若還是亂碼,透過setEncoding方法改成gbk即可解決

範例程式碼如下:

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("中文测试.txt");
        ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
            new FileOutputStream("zipTest.zip"), 1024));
        zos.putNextEntry(new ZipEntry("中文.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("中文测试");

        zos.closeEntry();
        zos.close();
    }
}
登入後複製

php中文網,大量的免費Java入門教學,歡迎線上學習! 

以上是java壓縮亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!