사용한 라이브러리: 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에 빈값이 들어가기도 했다.)
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"
댓글
댓글 쓰기