본문 바로가기
카테고리 없음

[JAVA] TOMCAT JSP 에서 환경설정에 따른 한글 출력 관계

by 소나기_레드 2023. 2. 27.

톰캣 환경에서 JSP 로 한글을 처리하다 보니, 한글 처리가 잘 안되는 경우가 있어서, 경우에 따라 한글 처리 여부를 정리한다.

 

1.톰캣 server.xml 설정, ( 현재 사용중인 connector 섹션에 URIEncoding="euc-kr" 속성 추가 여부

2.JSP에서 request.setCharacterEncoding("euc-kr"); 사용여부

 소스 상단에 <%@ page contentType="text/html;charset=euc-kr" %> 문은 항상 포함되어 있다.

3. HTML 문서의 Method 사용 방식 : GET, POST

 

위 설정의 조합에 따라서 아래와 같은 결과를 얻었다.

 

톰캣 Server.xml 설정<o:p></o:p>
(사용하는 connector 섹션에 URIEncoding=euc-kr 속성 추가 여부)<o:p></o:p>
JSP 소스에서<o:p></o:p>
request.setCharacterEncoding(euc-kr); 사용 여부<o:p></o:p>
Method 에 따른 한글 정상 표시 여부<o:p></o:p>
GET<o:p></o:p> POST<o:p></o:p>
추가 한 상태<o:p></o:p> 사용<o:p></o:p> O<o:p></o:p> O<o:p></o:p>
미사용<o:p></o:p> O<o:p></o:p> X<o:p></o:p>
추가 안한 상태 사용<o:p></o:p> X<o:p></o:p> O<o:p></o:p>
미사용<o:p></o:p> X<o:p></o:p> X<o:p></o:p>

 

서버 설정하고, JSP 소스에 명시 해 주는 것이 가장 명확한 것 같다.

 

 

 

다른 방법도 있다.

String name = request.getParameter("name");
out.println("이름 : " + new String(name.getBytes("8859_1"), "euc-kr"));

 

JSP 소스에서 파라미터로 넘어온 값을 받아서 새로운 String 을 생성하여 출력하는 방법이다.

서버, JSP 설정에 상관없이 한글이 정상적으로 표시된다.

 

위 내용은 다음과 같이 함수로 만들어서 사용할 수도 있다.

 

public String NormalKorean(String str) {

  try

  {

    String newStr;
    newStr = new String(str.getBytes("8859_1"), "EUC-KR");
  }

  catch (UnsupportedEncodingException e)

<FONT color="#333333">  {
  }
  return newStr ;
}

</FONT>

댓글