ZipInputStream은 중국 파일 이름을 압축하지 못했습니까? 문자를 올바르게 설정하는 방법은 무엇입니까?
중국 파일 이름 및 솔루션의 ZipinputStream 압축
많은 개발자들은 종종 ZipInputStream
사용하여 중국 파일 이름 또는 폴더 이름을 포함하는 압축 패키지를 압축하여 압축 실패로 이어지고 "Ollformed Input off : 1, 길이 : 1"과 같은 오류를 프롬프트합니다. 이 기사는이 문제를 깊이 분석하고 효과적인 솔루션을 제공합니다.
문제의 루트는 ZipInputStream
생성자에 지정된 문자 세트가 파일 내부에서 인코딩하는 파일 이름을 압축하는 데 사용되지 않고 Zip 파일 자체의 중앙 디렉토리 정보를 읽는 데 사용된다는 것입니다. 중앙 디렉토리의 인코딩은 압축 패키지가 생성되는 환경과 운영 체제에 따라 다릅니다. Windows 시스템은 일반적으로 GB2312 또는 GBK 인코딩을 사용하는 반면 MacOS 및 Linux 시스템은 일반적으로 UTF-8 인코딩을 사용합니다.
따라서 Zip 압축 패키지가 Windows에서 작성되면 GBK를 사용하여 중앙 디렉토리가 인코딩 될 수 있습니다. UTF-8 인코딩이 코드에 지정 되더라도 ZipInputStream
여전히 GBK 인코딩 중앙 디렉토리를 올바르게 구문 분석하지 못하여 감압 고장이 발생합니다.
해결책:
Windows Systems에서 생성 된 zip 패키지의 경우 GBK 인코딩을 사용하여 중앙 디렉토리를 읽는 것이 좋습니다.
fileInputStream input = 새로운 FileInputStream (TargetPath); ZipInputStream ZipInputStream = 새로운 ZipInputStream (새로운 bufferedInputStream (입력), charset.forname ( "gbk"));
GBK 인코딩은 GB2312와 호환 되므로이 방법은 GB2312 인코딩의 중앙 디렉토리에도 적용됩니다.
크로스 플랫폼 솔루션 :
보다 강력한 크로스 플랫폼 호환 코드를 작성하려면 Apache Commons Compress 라이브러리가 권장됩니다. 이 라이브러리는보다 강력한 압축/감압 기능을 제공하여 다양한 인코딩의 zip 압축 패키지를 자동으로 처리 할 수 있으며, 문자 세트 차이로 인한 감압 고장을 효과적으로 피할 수 있습니다. 다른 코드의 중앙 디렉토리 정보를 자동으로 감지하고 처리하고 개발 프로세스를 단순화하며 코드의 신뢰성을 향상시킬 수 있습니다.
위 내용은 ZipInputStream은 중국 파일 이름을 압축하지 못했습니까? 문자를 올바르게 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

javaachievesplatformincendenceThoughthehoughthejavavirtualmachine (JVM), hittoutModification.thejvmcompileSjavacodeIntOplatform-independentByTecode, whatitTengretsAndexeSontheSpecoS, toplacetSonthecificos, toacketSecificos

javaispowerfuldueToitsplatformincendence, 객체 지향적, RichandardLibrary, PerformanceCapabilities 및 StrongSecurityFeatures.1) Platform IndependenceAllowsApplicationStorunannyDevicesUpportingjava.2) 대상 지향적 프로그래밍 프로모션 Modulara

최고 Java 기능에는 다음이 포함됩니다. 1) 객체 지향 프로그래밍, 다형성 지원, 코드 유연성 및 유지 관리 가능성 향상; 2) 예외 처리 메커니즘, 시도 캐치-패치 블록을 통한 코드 견고성 향상; 3) 쓰레기 수집, 메모리 관리 단순화; 4) 제네릭, 유형 안전 강화; 5) 코드를보다 간결하고 표현력있게 만들기위한 AMBDA 표현 및 기능 프로그래밍; 6) 최적화 된 데이터 구조 및 알고리즘을 제공하는 풍부한 표준 라이브러리.

javaisnotentirelyplatformindent의 의존적 duetojvmvariationsandnativecodeintegration

TheJavavirtualMachine (JVM) isanabstractcomputingmachinecrucialforjavaexecutionasitsjavabytecode, "writeonce, runanywhere"기능을 가능하게합니다

javaremainsagoodlugageedueToitscontinuousevolutionandrobustecosystem.1) lambdaexpressionsenhancececeadeabilitys.2) Streamsallowforefficileddataprocessing, 특히 플레어로드 라트 웨이션

javaisgreatduetoitsplatform incendence, robustoopsupport, extensibraries 및 strongcommunity.1) platforminceptenceviajvmallowscodetorunonvariousplatforms.2) oopeatures inncapsulation, Nheritance, and Polymorphismenblularandscode.3)

Java의 5 가지 주요 특징은 다형성, Lambda Expressions, Streamsapi, 제네릭 및 예외 처리입니다. 1. 다형성을 사용하면 다른 클래스의 물체가 공통 기본 클래스의 물체로 사용될 수 있습니다. 2. Lambda 표현식은 코드를보다 간결하게 만듭니다. 특히 컬렉션 및 스트림을 처리하는 데 적합합니다. 3.StreamSapi는 대규모 데이터 세트를 효율적으로 처리하고 선언적 작업을 지원합니다. 4. 제네릭은 유형 안전 및 재사용 성을 제공하며 편집 중에 유형 오류가 잡히립니다. 5. 예외 처리는 오류를 우아하게 처리하고 신뢰할 수있는 소프트웨어를 작성하는 데 도움이됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구