日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 压缩 乱码_如何解决java压缩文件乱码问题

發布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 压缩 乱码_如何解决java压缩文件乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用java來打包文件生成壓縮文件,有兩個地方會出現亂碼:

內容的中文亂碼問題:修改sun的源碼。使用開源的類庫org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,這兩個類ant.jar中有,可以下載使用即可。

壓縮文件注釋的中文亂碼問題:zos.setComment("中文測試");通過使用設置編碼的方法(zos.setEncoding("gbk");)發現問題,測試項目的編碼方式為gbk,而默認編碼是utf-8。

org.apache.tools.zip.ZipOutputStream默認使用項目的編碼方式,通過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("中文測試.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();

}

}

以上就是java壓縮文件亂碼問題的詳細內容,感謝大家的學習和對腳本之家的支持。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java 压缩 乱码_如何解决java压缩文件乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。