CSV파일을 불러 들여와 데이터베이스에 넣거나 수정을 하는 로직을 만드는 중이었다.
컬럼이 두개인 경우에 아무 문제 없이 됐었는데 3개이상으로 만들어 놓은 상태에서 진행을 하니 데이터를 제대로 못가져오는 경우가 발생했다. 잘 실행 되던 코드였는데 컬럼하나 추가 했다고 안된다는게 이해가 안됐다.
디버깅을 했더니 데이터는 아주 잘 가져왔는데 List에서 Map으로 가져오고 거기에서 key값으로 값을 가져오는 부분에서 Null값이 나왔다.
그래서 디버깅을 할때 Key값을 복사해서 붙여 넣기해보니 키값 앞에 \uFEFF라는 문자가 붙어있었다.
검색을 해보니 CSV파일을 만들때 UTF-8인코딩을 이용해서 저장해서 생기는 문제였다.
엑셀에서 저장할때 인코딩 형식을 지정하는 방식이 아닌 단순히 쉼표로 구분하는 CSV형식으로 저장 하면 문제는 해결 된다.
'Java' 카테고리의 다른 글
SpringBoot IntelliJ에서 로컬 실행시 java.lang.NoClassDefFoundError: org/apache/tools/ant/util/ReaderInputStream 문제 (0) | 2018.06.12 |
---|---|
이니시스 XPathAPI 문제.. (0) | 2018.02.28 |
Tomcat Method 제한.. (0) | 2016.05.16 |
Get 방식으로 한글 파라미터 깨짐 문제.. (0) | 2014.11.24 |
HttpServletRequest의 getContextPath.. (0) | 2014.05.09 |