Java Java베이스 Java에서 문자가 왜곡된 압축 압축 솔루션(코드 포함)

Java에서 문자가 왜곡된 압축 압축 솔루션(코드 포함)

Nov 26, 2019 am 10:52 AM
java

Java에서 문자가 왜곡된 압축 압축 솔루션(코드 포함)

Java를 사용하여 압축 파일을 생성합니다. 문자가 깨져 나타나는 곳이 두 군데 있습니다. (권장: 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은 기본적으로 프로젝트의 인코딩 방식을 사용합니다. 이론적으로 말하면 utf-8은 중국어도 지원하는데 왜 여전히 왜곡되는지 알 수 없습니다. setEncoding 메소드를 gbk로 설정합니다.

첨부된 파일을 압축하는 코드입니다

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에서 문자가 왜곡된 압축 압축 솔루션(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자바의 제곱근 자바의 제곱근 Aug 30, 2024 pm 04:26 PM

자바의 제곱근

자바의 완전수 자바의 완전수 Aug 30, 2024 pm 04:28 PM

자바의 완전수

Java의 난수 생성기 Java의 난수 생성기 Aug 30, 2024 pm 04:27 PM

Java의 난수 생성기

자바의 암스트롱 번호 자바의 암스트롱 번호 Aug 30, 2024 pm 04:26 PM

자바의 암스트롱 번호

자바의 웨카 자바의 웨카 Aug 30, 2024 pm 04:28 PM

자바의 웨카

Java의 스미스 번호 Java의 스미스 번호 Aug 30, 2024 pm 04:28 PM

Java의 스미스 번호

Java Spring 인터뷰 질문 Java Spring 인터뷰 질문 Aug 30, 2024 pm 04:29 PM

Java Spring 인터뷰 질문

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?

See all articles