Java zip圧縮文字化けの原因と解決策:(推奨:javaビデオチュートリアル)
実行環境
Jdk 1.5、win 7 中国語版
JDK1.5 の java.util.zip パッケージの下に zip 圧縮関連の API があります。通常は、JDK 付属の API を使用して、ディレクトリ (ファイル) を zip パッケージに圧縮します。手順は次のとおりです。とすると、これらのディレクトリやファイルの名前が文字化けしてしまいます。理由は、JDK 付属の API では、ZipEntry を記述する際に使用されるデフォルトのエンコーディングが UTF8 であるためです (これしかないようで、他にはありません)変更方法 Java7で改善されたと言われています)、win7での動作 中国版のシステムではzipファイルの処理時にGBKエンコーディングが使用されており、エンコードとデコードのプロセスが異なるため、中国語版ではパッケージ化されたファイルが文字化けしますwin7の。
採用できる解決策は、サードパーティ API を使用して zip 圧縮を実装し、中国語の文字化けの問題を解決することです。以下は、Apache の圧縮を使用した zip 圧縮の実装です。必要な jar パッケージは commons-compress-1.2.jar
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(file)); Out.putNextEntry(new ZipEntry(entryName)); //If entry is directory //above codes are enough //else if entry is file //then the codes below is needed FileInputStream in = new FileInputStream(infile); byte[] bs = newbyte[1024]; int b = 0; while((b = in.read(bs)) != -1) { zos.write(bs, 0, b); } in.close();
Java の詳細については、
Java 基本チュートリアル以上がJava zip圧縮の文字化けの原因と解決策を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。