jsp에서 response의 인코딩 형식 변경하기

Posted 2009.02.09 19:54 by maxmini MAXMINI

1. jsp에서 response의 인코딩 형식 변경하기.

 

EUC-KR, UTF-8 등으로 변환할때

   response.setCharanterEncoding("EUC-KR");  // EUC-KR로 변경할때,

EUC-JP로 변환할때

   response.setContentType("text/html; character=EUC-JP");

   response.setCharacterEncoding("EUC-JP");

 

음 아직 이유는 모르겠지만 EUC-JP 로 변환할때는 setContentType도 바꿔줘야 실행되었다.

 

 

 

2. InputStreamReader() 에서 읽어올때 encoding값 넣기

   URL myURL = new URL("http://www.naver.com");

   InputStream is = myURL.openStream();

   InputStreamReader isr = new InputStreamReader(is,"EUC-KR");

 

읽고자 하는 url의 인코딩형식이 UTF-8이 아닐경우 InputStreamReader() 생성자중에서

인코딩값을 넘기는걸 이용하면 해당 인코딩으로 읽은후 UTF-8로 넘겨준다.

그 이후 작업들은 UTF-8형식이라고 간주하고 작업한다.

 

 

 

3. request의 인코딩 형식에 맞게 파라미터 읽어오기

   request.setCharacterEncoding("EUC-KR");

   String query = request.getParameter("query");

 

파라미터로 한글이 넘어오는 경우 인코딩이 맞지않으면 깨지는수가 있다.

이럴때역시 request의 setCharacterEncoding()메소드를 이용하면 getParameter()로 읽어오는 값을 인코딩에 맞게 읽어올수 있다.

 

* 그러나 여기저기 찾아보니 tomcat 5 부터는 이방식을 적용하려면 server.xml을 좀 수정해줘야한다고 한다.

 

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

 

위의 URIEncoding 부분과 useBodyEncodingForURI 를 추가하고 위의 setCharacterEncoding()을 이용하면 된다.

Tag : , ,

« PREV : 1 : ··· : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : ··· : 58 : NEXT »