Heim  >  Artikel  >  Java  >  Problem mit verstümmelter Java-komprimierter Datei

Problem mit verstümmelter Java-komprimierter Datei

尚
Original
2019-12-21 16:38:562264Durchsuche

Problem mit verstümmelter Java-komprimierter Datei

Verwenden Sie Java zum Packen von Dateien, um komprimierte Dateien zu generieren. Es gibt zwei Stellen, an denen verstümmelte Zeichen angezeigt werden:

1. Das Problem mit dem chinesischen verstümmelten Inhalt: Ändern Sie den Quellcode der Sonne. Verwenden Sie die Open-Source-Klassenbibliotheken org.apache.tools.zip.ZipOutputStream und org.apache.tools.zip.ZipEntry. Diese beiden Klassen sind in ant.jar verfügbar und können heruntergeladen und verwendet werden.

2. Das chinesische verstümmelte Problem komprimierter Dateikommentare: zos.setComment("Chinese test"); durch Verwendung der Methode zum Festlegen der Kodierung (zos.setEncoding("gbk");), um das Problem zu finden und Testen Sie die Kodierung des Projekts. Der Modus ist gbk und die Standardkodierung ist utf-8.

org.apache.tools.zip.ZipOutputStream verwendet standardmäßig die Codierungsmethode des Projekts. Dies kann gelöst werden, indem es über die setEncoding-Methode in gbk geändert wird.

Java-komprimierter Dateicode:

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();  
    }  
  
}

Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial.

Das obige ist der detaillierte Inhalt vonProblem mit verstümmelter Java-komprimierter Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn