※ 톰캣에서 한글문제 해결방법 ※
작성일 : 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 오시홍
댓글 없음:
댓글 쓰기