>  기사  >  Java  >  Java 압축 파일이 왜곡되는 문제

Java 압축 파일이 왜곡되는 문제

尚
원래의
2019-12-21 16:38:562193검색

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은 기본적으로 프로젝트의 인코딩 방식을 사용하는데, 이는 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 압축 파일이 왜곡되는 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.