1.웹 브라우저에 응답하는 페이지
-페이지 지시자에서 charset을 euc-kr로 지정
<%@ page language="java" contentType="text/html;charset=euc-kr%">
2.웹 브라우저에서 웹 서버로 파라미터가 post방식으로 넘어오는 페이지
request에서 사용하는 문자의 인코딩 방식을 euc-kr로 변경
<%@ request.setCharacterEncoding("euc-kr")%>
3.웹 브라우저에서 웹 서버로 파라미터가 get방식으로 넘어오는 페이지
영문 인코딩(8859_1)을 한글 인코딩(euc-kr)으로 변환하는 작업을 해야 한다. 이러한 작업을 위해서는 String클래스의 getBytes 메소드를 사용한다.
JSP페이지에서 get방식으로 넘겨진 한글은 기본적으로 8859_1 인코딩 방식으로 인식하므로 이 값을 제대로 출력하기 위해서는 euc-kr 인코딩방식으로 변환해야 한다.
String s_name = request.getParameter("name");
s_name = new String(s_name.getBytes("8859_1"), "euc-kr");
반대로 쿼리 스트링으로 한글을 전달할 경우에는 한글 인코딩 방식(euc-kr)을 영문 인코딩방식(8859_1)으로 변환한 후에 전송한다.
String s_name="성윤정";
s_name = new String(s_name.getBytes("euc-kr"), "8859_1");
-------------------------------------------------------------------------
-------------------------------------------------------------------------
package myUtil;
import java.io.UnsupportedEncodingException;
public class HanConv {
//8859_1 방식을 euc-kr 방식으로 변환하는 메소드 정의
public static String toKor(String str) {
if(str==null || str.equals("")||str.equals(null)) {
return str;
}
try{
return new String(str.getBytes("8859_1"), "euc-kr");
}catch(UnsupportedEncodingException uee){
uee.printStackTrace();
return str;
}
}//euc-kr 방식을 859_1 방식으로 변환하는 메소드 정의
public static String toEng(String str){
if(str==null||str.equals("")||str.equals("null")) {
return str;
}
try{
return new String(str.getBytes("euc-kr"),"8859_1");
}catch(UnsupportedEncodingException uee){
uee.printStackTrace();
return str;
}
}
}
출처: 서블릿 JSP 프로그래밍(저자: 성윤정, 하얀, 김태순) p.171
'개발 및 관리 > Java' 카테고리의 다른 글
STRUTS, 스트럿츠 - 한글 처리 및 web.xml (0) | 2014.08.28 |
---|---|
오라클에서 JDBC 연결 - jsp, java (0) | 2014.05.15 |
구입해야 할 책들 - HTML, javascript (0) | 2014.05.02 |
구입해야 할 책들 - JSP, 서블릿 (0) | 2014.04.27 |
JSP(JavaServer Page)란??? (0) | 2013.02.20 |