2013년 8월 27일 화요일

[5주차 3일] Tomcat에서 Charset 변환

: Servlet의 Charset은 UTF-16이고, Tomcat의 Charset은 MS949라서 영어 이외의 문자는 제대로 주고 받을수 없어서 Charset을 맞춰 줘야 한다.




response 시 Charset 변환

출력 스트림을 얻기 전에 변환할 문자집합을 설정한다.

UTF-8로 변환
response.setContentType("text/plain;charset=UTF-8")

ex>
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("테스트!!!");

* response.setContentType()메서드는 response.getWriter() 전에 수행해야 한다.


request 시 Charset 변환

POST 방식과 GET 방식 처리가 다르므로 주의하자.

POST 일때 변환
: 클라이언트가 보낸 데이터를 읽기 전에 문자 집합을 설정.
  request.setCharacterEncoding("UTF-8")

ex>
request.setCharacterEncoding("UTF-8");
System.out.println(request.getParameter("name"));

* request.setCharacterEncoding()메서드는 request.geParameter() 전에 수행해야 한다.


GET 일때 변환(Tomcat 인 경우):
: server.xml 파일의 <Connection> 태그에 속성값 설정.
  <Connector ....  URIEncoding="UTF-8" />

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

* 서버마다 GET방식 일 때 처리방법이 다르므로 문서를 참조해서 처리하자.




댓글 없음:

댓글 쓰기