Translate

[JXL] Excel 처리 시 UnsupportedEncodingException 오류사항





사용한 라이브러리: jxl-2.6.12.jar





File file = new File("/tmp/sample.xls");

Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
Cell a1 = sheet.getCell(0, 1);
Cell b1 = sheet.getCell(1, 1);
Cell c1 = sheet.getCell(2, 1);

JAVA에서 JXL을 사용하여 위와같이 엑셀(xls)파일을 읽어들여서 내용을 뽑아오는 부분이 있는데


엑셀에 한글이 없이 모두 영문으로 값을 넣으면 문제가 안되지만 한글이나 대시(-)같은 기호가 있는경우에는 'Workbook.getWorkbook(file)' 부분에서 아래와 같이 메시지가 발생을 하며
a1에만 값이 들어가 있고 b1, c1 변수에는 빈값이 들어가 있었다.
(넣는 값에따라 a1, b1까지 값이 들어가고 c1에 빈값이 들어가기도 했다.)

1004lucifer


Warning: java.io.UnsupportedEncodingException=UTF_8
Warning: java.io.UnsupportedEncodingException=UTF_8
Warning: java.io.UnsupportedEncodingException=UTF_8
Warning: java.io.UnsupportedEncodingException=UTF_8
Warning: java.io.UnsupportedEncodingException=UTF_8







원인

JAVA 구동 시 file.encoding 의 인코딩 값을 잘못 지정해 준 것이 문제였다.
해당 상황에서 톰캣을 사용중이었는데 file.encoding 을 누군가 UTF_8 로 설정을 해놓았던 것이다.

아래와 같이 작업을 했다.


<_TOMCAT_HOME_>/bin/catalina.sh 파일
1004lucifer
# 기존의 설정을 주석처리
#CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF_8"

# 인코딩 타입을 올바르게 지정함
CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"



댓글