Java圧縮でコードが文字化けする

angryTom
リリース: 2019-11-15 11:50:16
オリジナル
2343 人が閲覧しました

Java圧縮でコードが文字化けする

Java 圧縮コード文字化け

通常 Java を使用してファイルをパッケージ化し、圧縮ファイルを生成すると、中国語文字化けの問題が発生します。コンテンツが表示されますが、インターネット上の多くの人々がこの問題の解決策を示しています。主な方法は 2 つあります:

1 つは sun のソース コードを変更することです;

もう 1 つは、オープン ソース クラス ライブラリ org.apache .tools.zip.ZipOutputStream および org.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 中国語の Web サイト、無料の Java 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。

以上がJava圧縮でコードが文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート