스트럿츠 인코딩을 UTF-8로 해야하는 필수적인 4가지 파일


안녕하세요.
고코더 입니다.




제 게시물을 보면서 스트럿츠 학습 하고 있는 분에게 질문이 들어와 한번 짚고 넘어가려 합니다. 
프로그래밍 언어는 서양에서 만들어졌고 영어가 모든 명령어의 기본이라 그런지
언제나 영어를 기본으로 인코딩이 되어 있습니다. 한글을 사용하려면 euc-kr 이상이필요한데 말이죠
그리고 요즘은 글로벌 사이트가 많아서 utf-8로 하는게 정석입니다.
스트럿츠2도 역시 영어 인코딩에서 UTF-8로 바꿔줘야 합니다.

강의를 따라오신분은 제가 작성한 모든 파일이 UTF-8인코딩을 기본으로 하지만
한글깨짐으로 학습에 못따라오는 분을 위해 다시 한번 설명드립니다.



 1. JSP에서 UTF-8을 명시


JSP 파일 최상단에는 이 소스는 UTF-8이라고 명시를 해줘야 합니다.
아래 코드가 JSP 파일 맨위에 있는지 확인해보세요.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


 2. web.xml 에서 encoding 설정


web.xml 안에 UTF-8로 필터가 걸려있는지 확인해보세요.
스트럿츠 디스패처를 사용할 경우 UTF-8이 기본 인코딩라고 알려줘야 합니다. 

  <filter>
     <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     <init-param>
     <param-name>struts.i18n.encoding</param-name>
     <param-value>UTF-8</param-value>
    </init-param>    
  </filter>




 3. server.xml 에도 URIEncoding 설정이 필요합니다.


각 아파치 톰캣으로 만든 파일에서 설정파일인 sever.xml에도 수정이 필요합니다.
이 부분은 스트럿츠 강의에 다루지 않았는데요. 처음 개발하는 분들이 여기에 많이 헤매시는거 같습니다.
중간에 보시면 아래 태그에 맨뒤에URIEncoding을 UTF-8로 지정해보세요

<Connector connectionTimeout="20000" port="8080"  protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>


 4. struts.properties 파일에 옵션 추가


스트럿츠 프로퍼티 파일에도 인코딩을 설정하는 파일이 있습니다. 위 3가지만 지키면 한글이 깨지지 않을텐데요.
혹시나 몰라서 이부분도 다시 기재드립니다. 프로퍼티 파일에 UTF-8을 지정하세요.
struts.i18n.encoding=UTF-8


마무리


영어권 나라가 부럽습니다.

댓글을 달아 주세요