본문 바로가기

카테고리 없음

웹서버 한글깨짐 현상 조치

한글이 이상한 글자로 표시될때
[해결전] S社 3G 모ëì ì íµíë ì´íë리ì ì ì½ì ë§ë£ ëë 물ëì ê²°ì í ë¼ì°í°ë¡ 1.3ì²íì  Churn-in
[해결후] S社 3G 모뎀을 유통했던 총판대리점의 약정만료 대량 물량을 결제형 라우터로 1.3천회선 Churn-in


톰캣(Tomcat) 한글 깨짐 해결 (utf-8 인코딩 설정)


1. GET방식 한글 깨짐
이클립스 server.xml 에서 port=8080과 port=8009두개의 connector에 URIEncoding="UTF-8"을 추가한다.

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"  URLEncoding="UTF-8"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URLEncoding="UTF-8"/>


2. POST 방식에서 한글 깨짐
web.xml 아래와 같이 filter class 를 등록
...
  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCaharterEncodingFilter></filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
...


Spring Framework을 사용한다면, web.xml에 아래와 같이 이미 Spring에서 구현한 filter 클래스를 등록하기만 하면 된다.

  <filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
   </init-param>   
  </filter>
  
  <filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>



3. 소스파일 (jsp)에 utf-8 내용 추가
<%@pagepageEncoding="UTF-8" contentType="text/html; charset-"UTF-8" %>

<%
request.setCharacterEncoding("utf-8");
%>


4. 톰캣 실행시 -Dfile.encoding=UTF-8 추가
-Dcatalina.home=C:\apache-tomcat-8.5.12
-Dcatalina.base=C:\apache-tomcat-8.5.12
-Djava.endorsed.dirs=C:\apache-tomcat-8.5.12\endorsed
-Djava.io.tmpdir=C:\apache-tomcat-8.5.12\temp
-Djava.util.logging.manager=org.apache.juil.ClassLoaderLogManager
-Djava.util.loggin.config.file=C:\apache-tomcat-8.5.12\conf\logging.properties
-Dfile.encodeing=UTF-8