레이블이 한글인 게시물을 표시합니다. 모든 게시물 표시
레이블이 한글인 게시물을 표시합니다. 모든 게시물 표시

2010년 2월 1일 월요일

java.util.jar 또는 java.util.zip package 사용시 한글 인코딩 문제

Java로 파일을 압축하는 경우 가장 많이 쓰이는 방법은 java.util.jar 또는 java.util.zip 라고 생각된다. java.util.jar package 역시 java.util.zip package 를 상속 받은 것이니 결국 둘은 같은 로직을 사용한다.

 

이 두 package는 내부적으로 UTF-8 encoding을 사용한다. 그래서 해당 package를 사용하는 경우에는 UTF-8을 사용하지 않은 압축 프로그램(경험한 바로는 빵집)에서는 한글이 깨지는 문제가 발생한다. 해당 버그는 4244499 버그로 몇년동안 Top 25 Java Bugs 에서 1등을 한 전적을 가지고 있었다고 한다.

 

현재의 JDK 최신버전에서도 encoding 타입을 지정해 줄수는 없기 때문에 해결은 책은 없다. 다만 OpenJDK 7을 사용하면 encoding을 지정할 수 있다고 한다. 추후 JDK에서는 수정될 가능성이 많다고 할 수 있다.

 

java.util.jar 또는 java.util.zip package 사용하여 압축을 하고 테스트를 위해 PC에서 압축 프로그램을 이용하여 파일을 연 다음 한글이 깨진다면 위에서 말한 버그일 가능성이 많다.

 

PS) 빵집을 언급하기는 했지만 빵집의 문제는 아니다. Java의 문제이다. 빵집은 개인적으로 아주 고맙게 잘 사용하고 있는 프로그램 중에 하나이다.