<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            java壓縮zip文件中文亂碼問題解決方法

            時間:2025-04-06 17:37:51 java語言 我要投稿
            • 相關推薦

            java壓縮zip文件中文亂碼問題解決方法

              通常用java來打包文件生成壓縮文件后,有如下兩個地方會出現亂碼,怎么解決呢?下面是相關的知識,歡迎閱讀。

              1、內容的中文亂碼問題,這個問題網上很多人給出了解決方法,主要有兩種方法:一是修改sun的源碼;另一個是使用開源的類庫org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,這兩個類ant.jar中有,可以直接下載使用即可,毫無疑問,選擇后者更方便

              2、壓縮文件注釋的中文亂碼問題:zos.setComment("中文測試");這個問題網上對應的解決方法資料較少。在自己機器上的工程創建的測試類,沒有任何問題,但是在公司的項目中使用一直出現亂碼,通過使用設置編碼的方法(zos.setEncoding("gbk");)終于發現了問題,測試項目的編碼方式為gbk,而公司項目的默認編碼是utf-8,所以測試項目沒問題而公司的項目中出現了問題。

              org.apache.tools.zip.ZipOutputStream默認使用項目的編碼方式,理論上講utf-8也是支持中文的,實在想不通為啥還是亂碼,通過setEncoding方法改成gbk即可解決

              針對上述問題的示例代碼如下:

              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壓縮zip文件中文亂碼問題解決方法】相關文章:

            Java讀取、寫入文件如何解決亂碼問題08-24

            解決PHP中文亂碼問題05-27

            關于php中文亂碼的解決方法07-09

            java如何解決亂碼問題06-20

            Java如何解決URL中文亂碼10-20

            完美解決PHP中文亂碼問題07-18

            php各種應用亂碼問題的解決方法05-31

            壓縮文件打開時亂碼的解決辦法是什么08-06

            Java Web項目中解決中文亂碼的方法10-04

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院