본문 바로가기

카테고리 없음

톰캣 한글 인코딩 지원

get 방식 지원하게 하기

conf/server.xml 에 

    <Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

추가하기



post 방식 지원하게 하기

ROOT/WEB-INF/web.xml에 

<filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class> 
    <init-param>
      <param-name>encoding</param-name>
      <param-value>EUC_KR</param-value>
    </init-param>
  </filter>
  <filter-mapping>
      <filter-name>Set Character Encoding</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

추가하고

jsp-examples 에 있는 filters 폴더를 복사해서

ROOT/WEB-INF/classes/  에 복사한다.


단 utf-8로 바꿧을 경우 get방식으로 보냈을 시에 java에서 한글을 ??? 로 만 받게 되는데 이를 해결하기 위해서는 javascript에서

encodeURIComponent("한글")

를 실행하여 인코딩 후에 보내야 한다.

이렇게 보내면 java에서 잘 읽는다.   너무 잘 읽어요 ㅠ


저렇게 get방식의 인코딩을 바꾸지 않았을 때에는 
try{ new_xml = new String(result.getBytes("8859_1"), "euc-kr"); }catch( UnsupportedEncodingException ex){}

이런식으로 ISO8859_1 로 인코딩 되서 오는 톰캣 녀석을 인코딩 해주어야 한다.

귀찮음!