프로그래밍/Android/Java

UTF8로 개발시 한글처리 (Tomcat,Mysql 환경)

드럼캡 2008. 7. 28. 18:49
오랜만에 홈페이지를 만들던 중 MySQL에서 한글문제가 또 발생했다.
예전에 자주 해결했던 문제였으나, 그때그때 해결하고 넘어갔던 문제여서 넘어가고 또 까먹고, 검색하고, 이런 나를 보면서 에구, 이 기회에 정리하자 하던 찰나 좋은 글을 구글링해서 찾았다.

아래의 글은 간단한 정리 글 이므로 자세한 내용은 아래의 출처링크를 참조하기 바란다.
출처 : OKJSP GHLab님 http://okjsp.pe.kr/seq/72792

한글 완벽출력 조건 -.-

1. 모든 문서는 UTF-8 인코딩으로 저장되어야 함.

2. jsp 파일 상단에 <%@ page contentType = "text/html;charset=utf-8" %>
 
3. 서블릿은 request.setCharacterEncoding("utf-8")
 
4. 자바스크립트에서 encodeURIComponent("get방식한글") 처리

5. server.xml에서 Server - Service - Connector 엘리먼트에  URIEncoding="UTF-8" 을 추가
 
예)
    <Connector port="8080" maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" />
 
6. HttpURLConnection 을 통하여 UTF-8 로 된 URL 을 읽을 경우.
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
로 변경
 
7. jsp -> bean 데이터 전송은 문제 없지만 jsp -> jsp 에서 한글이 깨진다면 받는 부분에서
 String test = request.getParameter("test ");
 test = new String(test .getBytes("8859_1"), "UTF-8");
 처럼 변환해서 저장.
8. MySQL DB역시 기본으로 UTF-8 세팅이 되어있어야 함

반응형