안드로이드에서 한글이 포함된 zip 파일을 풀기

업데이트:

안드로이드만이 아니라 Java의 기본 ZipInputStream, ZipEntry를 사용하면 인코딩 문제로 한글파일을 압축을 해제하다가 Exception이 발생한다. Sun에서도 이 버그를 알고 있다고 한다. 그래서 이것을 해결해서 배포되는 것이 jazzlib이다.

문제는 이 라이브러리를 받아서 안드로이드에서 테스트해 본 결과, Exception은 발생하지 않지만 ZipEntry 내부의 한글파일 명들이 제대로 decoding 처리되지 않고 글자가 계속 깨진다는 것이다. 결론부터 얘기하자면 ZIP 파일을 생성할때 국내의 대부분이 euc-kr로 인코딩되어 있어 파일명을 특정 인코딩으로 읽어들이는 부분을 수정해야 한다.

그 부분을 수정하고 ZipEntry 내부의 파일명을 읽어들일 때 encoding값을 설정할 수 있도록 수정한 소스파일이다. GNU 라이센스로 배포된 파일이니 나도 당연히 소스를 재배포해야지. ^^

댓글남기기