자바를 사용하여 파일을 패키지하여 압축 파일을 생성합니다. 왜곡된 문자가 나타나는 두 곳이 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!