====== CSV ====== * [[http://supercsv.sourceforge.net/|SuperCSV]] : 이게 더 강력함. * [[http://opencsv.sourceforge.net/|OpenCSV]] * [[https://www.callicoder.com/java-read-write-csv-file-opencsv/|Read / Write CSV files in Java using OpenCSV]] * [[http://opencsv.sourceforge.net/apidocs/index.html|OpenCSV JavaDoc]] * [[groovy:csv|Groovy CSV]] ===== UTF-8 / Excel ===== * UTF-8 CSV를 만들었는데 Excel에서 유니코드/한글이 깨진다면, 맨 앞에 BOM 처리를 추가해준다. * [[http://www.jaso.co.kr/521|jaso extends j2ee :: CSV export 처리 시 excel에서 한글 깨짐 현상]] * [[http://www.skoumal.net/en/making-utf-8-csv-excel/|Making UTF-8 CSV for Excel]] * [[http://csv.thephpleague.com/bom/|CSV and BOM character]] * [[http://blog.wystan.net/2007/08/18/bom-byte-order-mark-problem|wystan's tales > UTF-8 인코딩에서의 BOM(Byte Order Mark) 문제]] // OutputStream에 BOM추가 먼저 한뒤에 CSV Write ServletOutputStream out = response.getOutputStream(); out.write(0xEF); // byte 임. char 아님! out.write(0xBB); out.write(0xBF); // 이 이후 CSV 문자열을 만들려면 PrintWriter를 생성해야함. PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "UTF-8")); // 위 writer를 CSV 생성기에 넘겨서 CSV를 계속 생성.