tomcat 문서를 살펴보면 HTTP body의 입력 스트림은 기본으로 UTF-8을 이용하여 디코딩한다. 반면 URL은 ISO-8859-1으로 디코딩한다.
브라우저에서 Form 데이터는 기본설정으로 UTF-8 인코딩하므로 Form으로 전송되는 POST는 문제가 없었던 것이다. 그럼 tomcat의 설정에서 URL 인코딩 방법을 변경하기만 하면 문제는 해결된다.
conf/server.xml 에 다음과 같은 부분에 아래와 같이 URIEncoding을 UTF-8로 설정한다.
브라우저에서 Form 데이터는 기본설정으로 UTF-8 인코딩하므로 Form으로 전송되는 POST는 문제가 없었던 것이다. 그럼 tomcat의 설정에서 URL 인코딩 방법을 변경하기만 하면 문제는 해결된다.
conf/server.xml 에 다음과 같은 부분에 아래와 같이 URIEncoding을 UTF-8로 설정한다.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>


덧글