
JSP 페이지에서 insert 쿼리를 이용해 한글로 된 데이터를 입력했더니, 위의 캡처화면 화살표에 보이는 값처럼 한글이 깨졌다.
이는 폼에서 입력받은 한글이 데이터를 저장하는 페이지로 넘겨질 때 이미 깨진 상태로 DB 에 입력되었기 때문이다.
JSP 에서는 request.getParameter() 로 넘겨받을 때 한글이 깨진다.
따라서 넘겨받은 페이지에서 한글로 변환해준 후 insert 구문에 넣어줘야 깨지지 않은 한글로 입력이 된다.
화살표 아래의 값에 ‘넙치’ 라고 들어가 있는 것이 보이는데, 한글 변환함수를 이용해 한글을 제대로 보이도록 변환한 후 입력하여 정상적으로 한글이 입력된 값이다.
데이터베이스에서 getString(컬럼명) 으로 불러올 때는
페이지 상단에
<%@ page contentType="text/html;charset=euc-kr" %>
와 같이 한글 선언만 되어 있으면 별도의 변환과정이 없어도 한글이 깨지지 않는다.
꽤 자주 쓰이기 때문에 별도의 함수를 만들었다.
기존에 웹에 올라와 있는 다른 소스를 static 형태로 약간 변형하고 조건문과 try-catch 구문을 추가했다.
-------------------------------------------------------------------
<%!
public static String euckor(String str) {
String re="";
if((str!=null)&&(str!="")){
try{
re = new String(str.getBytes("8859_1"), "euc-kr");
}catch(Exception e){ re = str; }
}
return re;
}
%>
<%
String name = request.getParameter("name");
name = euckor(name);
%>
덧글
euckor 매서드 설명좀 해주실 수 있나요?
JSP 초보라서 ㅎㅎ
euckor(값) 형식으로 호출해서 처리하는 명령입니다.