(JSP) DB에 데이타 입력이나 값을 가져올때(getParameter) 한글 변환 처리 함수 JSP_Java


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);
%>


덧글

  • 지나가는사람 2016/01/16 16:20 # 삭제 답글

    덕분에 DB에서 불러올 때 한글 안깨지네요. 감사합니다 ㅎㅎ

    euckor 매서드 설명좀 해주실 수 있나요?

    JSP 초보라서 ㅎㅎ
  • fendee 2016/01/16 18:59 #

    if 조건문에서 null 값이거나 빈값이 아닌 경우를 체크해서 euc-kr 코드인 8859_1 값으로 변환해주는 명령입니다.
    euckor(값) 형식으로 호출해서 처리하는 명령입니다.
  • 지나가는사람 2016/01/17 02:35 # 삭제

    감사합니다
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

39617
4671
11048169

google_myblogSearch_side

▷검색어

Flag Counter style2