2012-12-10 4 views
0

나는 java.util.zip 패키지를 사용하여 java에서 간단한 추출 방법을 사용합니다.다른 언어로 된 zip 파일의 압축 해제

편집 : Oracle 데이터베이스에서 java 저장 프로 시저로 실행해야하므로 Java 1.5에서 코드를 실행해야합니다.

아주 오랫동안 완벽하게 작동했지만 최근에는 스페인어 특수 문자가 포함 된 zip 파일을 추출 할 때 버그가 발생했습니다.

코드는

ZipEntry entry = zis.getNextEntry(); 

에 실패하는이 특수 문자로 인해인가? zip이 손상되지 않았으며 이름에 특수 문자가있는 다른 zip에 대해 테스트 한 결과 동일한 오류가 발생했는지 확인했습니다.

마지막으로,이 경우이 문제가 발생합니까?

+2

스택 트레이스가 있습니까? – Kai

답변

0

org.apache.commons에는 압축 클래스가 있으며 다른 옵션이 있다는 것을 알게되었습니다. 인코딩 매개 변수를 지정하면 다른 언어의 문자를 받아 들일 수 있습니다.

3

Java 7에서는 문자 인코딩을 나타내는 ZipFile(File, Charset)을 사용할 수 있습니다.

+0

Charset Cp1252 (Windows), Cp850 (DOS)에 대해 먼저 시도해보십시오. –

+0

java 1.5가 oracle 데이터베이스 내에서 Java 내장 프로 시저로 실행되고 있기 때문에 필요합니다. – medium

+0

아마도 매우 운이 좋으면 getNextEntry를 시도하고 파일 이름을 생성 한 다음 계속 진행할 수 있습니다. 또는 전역 파일 인코딩을 설정하여 심하게 해킹 할 수도 있습니다. 오류를 더 잘보고하고 웹 응용 프로그램에서 수행하십시오. –

관련 문제