Java を使用してファイルをパッケージ化し、圧縮ファイルを生成します。文字化けが発生する場所は 2 か所あります:
1. 中国語のコンテンツの文字化けの問題: ソース コードを変更します。太陽の。オープン ソース クラス ライブラリ org.apache.tools.zip.ZipOutputStream および org.apache.tools.zip.ZipEntry を使用します。これら 2 つのクラスは ant.jar で入手でき、ダウンロードして使用できます。
2. 圧縮ファイルのコメントの中国語文字化け問題: 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圧縮ファイルの文字化け問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。