Whiteship's Note

톰캣 인코딩 설정해야 하는 경우

모하니?/Coding : 2008.06.26 17:51


updated 090623

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true"/>

--------------------------------------------------------------------------
검색창에 한글만 입력하면 다음과 같은 에러가 발생한다.

org.postgresql.util.PSQLException: ERROR: character 0xc3a7 of encoding "UTF8" has no equivalent in "EUC_KR"

웹 페이지도 EUC-KR로 설정되어 있고 Postgres DB도 EUC-KR을 사용하고 있다. web.xml에 인코딩 필터를 확인해봤더니, 그것도 역시 EUC-KR로 설정되어 있다.

알턱이 없으니 사부에게 문의해서 알아냈다.

톰캣 5.5 이상 부터는 Post 방식에는 인코딩 필터를 적용할 수 있지만 GET 방식은 서버가 connector에 설정한  (server.xml) URIEncoding의 값으로 인코딩 함.

<Connector port="8209" protocol="AJP/1.3" redirectPort="8543" URIEncoding="euc-kr" />

위는 아파치랑 연동되어 있어서 아파치와 연동하는 부분에 인코딩 설정. 아마도 저 값의 기본값이 UTF-8이었거나 아파치쪽의 기본값이 UTF-8 이었나보다. 몰겠다. 자세히는;
top