1. EUC-KR로 인코딩할 때 JSP파일 첫줄에 다음과 같이 추가한다.
<%@ page contentType=”text/html; charset=euc-kr” pageEncoding=”euc-kr”%>
2. 서블릿 필터를 이용하거나 서블릿, JSP첫줄에 다음과 같이 추가한다.
request.setCharacterEncoding(encoding);
3. Tomcat/conf의 server.xml파일에 connector설정에 URIEncoding=”euc-kr”을 추가한다.
결과
pageEncoding에 의해 JSP페이지가 인코딩되어 처리되며
contentType에 의해 response의 charset이 지정되며
setCharacterEncoding에 의해 request body에 대해 charset이 지정된다.
URIEncoding에 의해 GET방식의 파라미터에 encoding이 적용된다.
추가
Encoding방법은 Servlet Spec에서 정의되어 있다. 지원하는 Servlet버전에 따라 처리하는 방법도 달라지므로 자신의 WAS의 서블릿 지원 규격을 확인하여 처리한다.(이내용은 Tomcat 5.x버전을 기준)
parameter를 한번이라도 읽게되면 setCharacterEncoding이 적용되지 않으므로 파라미터를 읽는 로그파일을 생성하지 않는다. (Tomcat valve도 parameter를 읽는것이 읽다. 로깅레벨이 debug이하인경우 파라미터를 덤프하므로 warn레벨 이상으로 둘것)
추가
직접 변환할경우 기본 encoding이 cp1252이므로 다음과 같이 한다.
(request.getParameter().getBytes(“Cp1252″),”euc-kr”)