운영에서는 JEUS, 로컬에선 톰캣으로 세팅하고 사용 중인 프로젝트가 있다.
로컬에선 이상없이 JSP 한글도 나온다.
운영이 문제다.
서버 이전 전 운영에선 JSP의 한글이 이상없이 나왔는데
서버 이전 후 일부 페이지에서 한글이 깨지기 시작했다.
다른 한글은 잘 나오는데 GET 파라미터로 넘기는 한글이 깨지는 것.
엄청난 삽질 끝에 해결했으니
일단 방법을 차례로 써보시길.
1. JSP 페이지 인코딩 확인
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
JSP 페이지 상단에 charset과 해당 문구를 정확히 표시해줬는지 확인.
물론 이걸로도 해결안됨.
2. JEUSMain.xml 확인
UTF-8 UTF-8 UTF-8 UTF-8
위의 request-encoding, response-encoding, request-url-encoding을
모두 UTF-8 혹은 EUC-KR로 설정해줘야 한다.
<forced> 태그 안에 넣어줘야 하는 건 덤.
3. 마지막 방법
JSP 안 자바로 해결하는 방법이 있다.
보통 파라미터를 받을 수 있는 VO를 만들어서 해결하는게 베스트지만
내 경우엔 바로 파라미터를 받아서 사용하는 JSP였다.
그렇기 때문에 URL Encoding이 꼬이면서 에러가 났던 것.
최종코드는
//파라미터에서 가져오기 String rText = request.getParameter("no3") ; String sText = request.getParameter("no4") ; // 문자 디코딩 if(rText != null) { String aText = new String(rText.getBytes("8859_1"), "utf-8"); String bText = new String(sText.getBytes("8859_1"), "utf-8"); request.setAttribute("no5", aText); request.setAttribute("no6", bText); }
위의 코드를 JSP에서 JSTL이나 스크립트릿으로 당겨쓰면 해결...
좀 꼼수로 해결해서 올리기도 민망하다.