본문 바로가기

IT

JEUS JSP 한글깨짐 현상 해결.


운영에서는 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이나 스크립트릿으로 당겨쓰면 해결...


좀 꼼수로 해결해서 올리기도 민망하다.