2006년 6월 16일 금요일

JSP 한글 처리 문제.

※ 톰캣에서  한글문제 해결방법 ※
작성일 : 2005.10.26

-. 아?d?d, ?막?, ?? , ?C, ?B 같은 문자를 파라미터로 입력 받는방법
-. 한글 이름으로 된 파일(그림파일)이 다운로드 되지 않는문제 해결
-. Oreilly에서 만든 MultipartRequest 에서 한글파일 이름 얻기


우선  KSC5601(EUC_KR)에서는 위와같은 문자를 표현할 수 없다.

1. server.xml 에서
    useBodyEncodingForURI 옵션추가
    URIEncoding이 값 있다면 아래와같이 UTF8로 변경한다.
  (톰캣이 파일 관리시 내부적으로 UTF8을 사용하는것 같음)

    <Connector .... 
         useBodyEncodingForURI="true"
         URIEncoding="UTF8"/>


2. JSP출력 인코등은 MS949, HTML은 KSC5601 혹은 EUC-KR, MS949 로 한다.
  JSP,HTML 다음과 같이 넣어준다...

  <%@ page contentType="text/html; charset=MS949" %>
 
  <TITLE>한글 테스트</TITLE>
  <META http-equiv="Content-Type" content="text/html; charset=KSC5601">


3. HttpServletRequest.getParameter(String)를 사용하기전에, 다음 코드를 미리 실행한다.
 
  request.setCharacterEncoding("MS949");

  이것은  아래와 같이 실행한 결과를 한것과 동일하다.
  new String(request.getParameter("param1").getBytes("ISO8859_1"),"MS949")

4. com.oreilly.servlet.MultipartRequest 에서 한글 파일 이름 얻기
  아래와 같이 생성자의 3번째 파라미터에 MS949를 입력한다.

  MultipartRequest multi = new MultipartRequest(request, "c:\upload", (1024*1024*30), "MS949", new DefaultFileRenamePolicy());


from http://okjsp.pe.kr
write by 오시홍

댓글 없음:

댓글 쓰기