1. GET으로 보낼때 한글깨짐
  1) server.xml에 URIEncoding="EUC-KR" 이나 URIEncoding="UTF-8" 추가
     <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="EUC-KR"/>

  2)<%@ page import="java.net.URLEncoder"%>
       <% String eventTitle =  URLDecoder.decode(request.getParameter("title"), "UTF-8"); %>

<javascript>
escape 함수 : ASCII 범위를 벗어난 문자열들을 ASCII 형식으로 변환.
encodeURI 함수 : ASCII 범위를 벗어난 문자열들을 URI 형식으로 변환. 단, '/'나 '?' 등 URI에서 사용하는 예약 문자 등은 변환하지 않는다.
encodeURIComponent 함수 : 기본적으로는 encodeURI 함수와 같지만 encodeURI 함수가 변환하지 않는 '/'나 '?' 등의 문자들까지 전부 변환한다.

2.POST로 보낼때 한글깨짐
모든 jsp와 servlet에서 request.getParameter를 호출하기전에 characterEncoding을 지정해줌
sevlet
 - request.setCharacterEncoding("EUC-KR");
jsp
 - <%@ page contentType="text/html;charset=utf-8" language="java" %>


이게 싫다면...
web.xml에 필터를 추가해준다
톰캣 6.0인경우 예제 경로는 apache-tomcat-6.0.18\webapps\examples

3. 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>


3-1. 필터클래스를 만들어줌
SetCharacterEncodingFilter.java 을
프로젝트홈\WEB-INF\classes\filters\SetCharacterEncodingFilter
에 복사해서 넣어놓자.





-------------------------------------------------------------------------------------

◈ Tomcat에서 JSP파일의 한글깨짐 방지


1. Get방식으로 넘어가는 파라미터 한글인코딩하게 하는법


  위치 : 'C:\java\Tomcat 5.5\conf\serverl.xml' 파일을 아래와 같이 변경.
         URIEncoding="euc-kr" 를 추가 삽입 한후 저장
         톰캣 재시작후 다시 확인 하면 됨.
  <Connector port="8080" maxHttpHeaderSize="8192"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="euc-kr" />


2. JSP에서 엑셀로 출력시 한글깨짐현상


    response.setHeader("Content-Disposition", "attachment; filename=export.xls");
    response.setHeader("Content-Description", "JSP Generated Data");
    response.setContentType("application/vnd.ms-excel");

    <meta http-equiv="Content-Type" content="application/vnd.ms-excel;charset=euc-kr">

    추가한다.


3. ContentType이"Text/html"이 아닐때 한글 인코딩(예 contentType="image/gif")


     String aa = "한글~!!";
     aa = new String(aa.getBytes("8859_1"),"euc-kr");
     g.setFont(new Font("Gulim", Font.ITALIC, 15));
     g.drawString("HelloWorld~!!", 10, 50);
     g.drawString(aa, 10, 80);


4. jsp 페이지상단에 <%@ page contentType="text/html;charset=euc-kr" %>삽입


5. Post로 넘어온값 위에 아래 문장 선언(단 ,get 방식은 지원안함) 

                               
    request.setCharacterEncoding("euc-kr");

'Jsp_Html' 카테고리의 다른 글

[Jsp] forward, location.href  (0) 2010.06.22
[Jsp] ServletConfig, ServletContext  (0) 2010.06.17
[Jsp] 다중 국가 언어 설정  (0) 2010.06.15
[Jsp] 패턴으로 필요한 문자 골라내기  (0) 2010.06.15
[Jsp] JSTL 기본 문법  (0) 2010.06.15

+ Recent posts