출처 : http://blog.naver.com/seogi1004?Redirect=Log&logNo=110045319589
정리를 한번 한다 한다 하면서 필요할 때마다 찾아다니다가,
어떤분이 잘 정리를 해주셔서.. 살짝 가져왔습니다. (닉: 문학이?)
출처 표기하고 내용은 변경하지 않았습니다만, 그냥 약간 편집만 했습니다.
1. DB charset 설정
2. Server charset 설정
예) Tomcat 의 경우 server.xml 파일에 (링크)
<connector ..... 부분에
나
를 추가한다.
확인하진 않았지만 위는 문서 인코딩 형태에 따라 URI 형식을 바꾸는 것 같고,
아래는 URI 인코딩 형식을 무조건 정해주는 것 같다.
이러면 POST 방식에서의 charset 해결
한글 URL이 문제가 될 경우
java.net.URLEncoder.encode( "한글파일.html" , "UTF-8" );
4. 개발 툴에서 문서 자체의 인코딩 방식 변경.
editplus : 기본설정 - 파일 >> 기본인코딩 UTF-8
eclipse : window - preferences - general - workspace - textfile Encoding
5. 작업문서에서의 설정
① 페이지 설정
UTF-8을 쓰고자 하는 경우 *.html, *.htm, *.jsp 파일은 UTF-8 형식으로 저장한다.
EUC-KR, MS949는 ANSI, MS949등의 기본 형식으로 저장하면 된다.
모든 HTML, JSP에는 아래와 같은 META태그를 넣을 것을 권장한다.
<META HTTP-EQUIV="contentType" CONTENT="text/html;charset=UTF-8">
<!--EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다-->
JSP에서는 페이지 상단에 page 지시자를 다음과 같이 넣는다.
<%@ page contentType="text/html;charset=UTF-8" %>
<!--EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다-->
② POST 방식의 데이터 전송
POST방식으로 전송된 데이터는 UTF-8이든, EUC-KR이든 다음과 같은 라인을 추가하면 해결 된다.
request.setCharacterEncoding("UTF-8");
//EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다.
③ GET 방식의 데이터 전송
GET 방식으로 전송된 데이터는 URL을 통해 전송되기 때문에 위의 방식으론 쓸 수 없다. URL에서의 데이터를 Latin-1(8859_1)인코딩으로 서버에서 처리하기 때문이다. 이를 톰캣의 버그라고 단정짓는 일부 서적의 말은 잘못된것이다.
불러온 데이터를 아래와 같이 처리해 주어야 한다.
request.setCharacterEncoding("UTF-8");
String data = new String(request.getParameter("data").getBytes("8859_1"),"UTF-8");
//Latin-1(8859_1)로 읽어들인 데이터를 다시 UTF-8로 재해석하는 코드
//EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다.
④ 한글 파일 전송
Latin-1(8859_1)로 세팅된 톰캣 서버에서는 URL을 무조건 영어로 처리하므로 한글 파일은 절대로 읽어들일 수 없다. 파일을 영어로 바꾸어 저장하거나, 한글 파일을 영어로 바꾸는 처리를 해주어야 한다. ⑤ DB URL의 인코딩 jdbc:mysql://localhost:3306/DB명?useUnicode=true&characterEncoding=utf8 [ Java 또는 JSP ] jdbc:mysql://localhost:3306/DB명?useUnicode=true&characterEncoding=utf8 [ XML ] XML 문서에서는 기호 ('&')를 표시할 때 &를 사용하기 때문에 일반 코드와 다르다.
출처 : http://blog.naver.com/seogi1004?Redirect=Log&logNo=110045319589
출처의 닉: 문학이 님 감사^^
'JAVA/JSP' 카테고리의 다른 글
ResultSet 의 Null 체크. (0) | 2011.03.31 |
---|---|
StringBuffer 초기화하여 재사용하기. (0) | 2010.11.22 |
ResultSet -> LIST (0) | 2010.11.03 |