UTF-8 처리를 하는게 장난이 아니군..ㅡㅡ;
여기저기 보면서 다양한 케이스마다 UTF-8 처리를 하는 다양한 방법을 모았습니다. (워낙 다양한 곳을 보다보니 출처 정리조차 힘듬을 이해해주시길.. 뭐 그대로 복사한건 아니니까..ㅋ)
UTF-8 처리를 위해 아래를 모두 해야 하는건 아니고 맘에 드는 걸 고르면 되겠습니다..^^;
[Tomcat의 URI값을 UTF-8로 변경 설정]
1. export LANG=ko 또는 export LANG=ko_KR 와 같은 환경 설정
서버의 쉘을 설정하는 부분인데 LANG=UTF-8로 해야하나 이건 다른 프로그램에 영향을 줄 수 있기 때문에 가능한 안하는게 좋음..ㅋ
2. 서블릿 엔진의 file.encoding 값이 UTF-8, EUC_KR, KSC5601 중 하나가 되도록 함
서버 시작 스크립트에서 "java ... -Dfile.encoding=UTF-8 ..." 라고 지정
톰켓의 경우 catalina.sh(또는 bat)에 4군데 정도 있음
3. 서블릿에서 다음과 같은 request, response 인코딩 지정
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
request.setContentType("text/html");
response.setContentType("text/html");
4. JSP 첫째줄에 다음 라인 추가
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
5. GET 방식에서는 URL 인코딩 수행 (이것이 RFC 표준에 따르는 것이라고 함)
자바스크립트에서는 encodeURIComponent()
자바에서는 java.net.URLEncoder의 encode() //--> java.netURLEncoder("문자열","UTF-8")
자바스크립트의 경우 다음 사이트 참고 http://mwultong.blogspot.com/2006/05/javascript-tools-decodeencode-uri.html
6. UTF-8 변환 함수 호출
public static String Kor2UTF8(String str) {
if (str== null) {
return null;
}
try {
return new String(str.getBytes("8859_1"), "UTF-8");
} catch (Exception e) {}
}
7. UTF-8로 파일 저장
울트라에디트 : 파일 -> 변환 -> ASCII를 UTF-8으로 (Unicode 편집)
에디트플러스 : 파일 -> 새이름으로 -> 인코딩을 UTF-8로 지정 또는
문서 -> 인코딩 변경 로드 -> 인코딩 선택을 UTF-8로 지정
이클립스 : Windows->General->Workspace 에서 Text file encoding을 UTF-8로 지정 또는 파일을 선택하고 오른쪽 버튼 클릭->Properties에서 Text file encoding을 UTF-8로 지정
이 때 한글이 깨지는 경우가 있음. 백업을 받아놓아야 함
서버에 올릴때는 바이너리로 올림
8. native2ascii -encoding UTF-8 test.xml test.xml
native2ascii는 자바에 내장된 명령어로 위와 같이 하면 test.xml 파일을 UTF-8로 인코딩해줌
단, 한글은 \u001 ... 이런식으로 깨짐
따라서 에디터로 열어서 수정해주어야 함
9. HttpURLConnection을 이용한 HTTP 통신
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
10. 웹로직에서 UTF-8 처리
web.xml 에서 다음 추가
<web-app>
...
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>UTF-8</param-value>
</context-param>
...
</web-app>
weblogic.xml 에서 다음 추가
<weblogic-web-app>
...
<jsp-descriptor>
<jsp-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</jsp-param>
</jsp-descriptor>
...
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>UTF-8</java-charset-name>
</input-charset>
</charset-params>
...
</weblogic-web-app>
11. 톰켓에서 UTF-8 처리
web.xml 에서 다음 추가하고 첨부 파일을 %CATALINA_HOME%/common/classes/filters 복사하면 된다고 함..ㅎㅎ
<web-app>
...
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
12. 인코딩 테스트 jsp 참고 (이원영씨 글부분) http://www.javaservice.net/~java/bbs/read.cgi?m=resource&b=servlet&c=r_p&n=1092754975&k=hangul.jsp&d=tb#1092754975
출처 : http://skkim.tistory.com/entry/UTF-8-%EC%B2%98%EB%A6%AC
'JAVA > JAVA&JSP' 카테고리의 다른 글
Captcha 기능 (0) | 2009.01.06 |
---|---|
Tomcat 5.5.27 & Apache 2.0.63 연동 (mod_jk / 윈도우XP) (0) | 2008.12.01 |
톰켓 설정 도움말 (0) | 2008.05.22 |
윈도우 Tomcat java heap 늘려서 오버플러어 막기 (0) | 2008.05.06 |
[ JSP] Url Rewrite Filter (0) | 2008.04.03 |
JAVA에서 Tray구현하기 (0) | 2008.03.24 |
[JSP]한글파라미더 UTF-8처리 (쿠키 cookie 예제) (0) | 2008.02.01 |
[JSP] 폴더 삭제하기 (0) | 2008.01.31 |
(로그인하지 않으셔도 가능)