본문 바로가기
Java/JSP

jsp 파라미터 한글 깨짐 현상 해결 방법

by 놀러와요 2019. 9. 6.
반응형

 

get방식으로 script에서 loaction.replace나 location.href를 해주면 한글이 깨질 수 있다. 아래와 같이 해결해보도록 하자!

 

GET 의 경우

 

1. Server 에서의 server.xml파일 설정하여 해결하기

 

Tomcat의 server.xml에 URIEncoding 옵션을 추가해 준다. 

아파치를 연동하여 AJP를 사용할 경우 AJP connector에도 해당 옵션을 추가해 준다.

 

1

2

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" 

redirectPort="8443"  URIEncoding="UTF-8" />

cs

 

<Connector /> 탭안에 URIEncoding="UTF-8" 코드를 추가해준다.

이 역할은 URI가 넘어갈 때 기본인코딩을 설정해준다. 위와 같이 설정하면 따로 인코딩과 디코딩을하지 않아도 된다. (아직까지는..

)

 

 

2. 인코딩해서 보내고 디코딩해서 받기

 

<javaScript> 인코딩

1

2

3

4

5

6

7

 $(document).on('click', ".b", function() {

         

         var disease= $(this).attr('value');

         var ds = encodeURI(disease);

         location.replace('diseaseForm.ys?'+'disease='+encodeURI(ds,"UTF-8"));

         

     });

Colored by Color Scripter

cs

 

먼저, 값을 encodeURI(값) 해주고 보낼 때 한번더 그 값을 encodeURI (ds,"UTF-8")해주어야 디코딩에서 잘 받을 수 있다.. 두번을 해줘야함 왜그러는지는 나중에 찾아보도록 하자.

 

 

<JAVA> 디코딩 받을 때

1

2

String name = java.net.URLDecoder.decode

(request.getParameter("disease"), "UTF-8");

cs

 

디코딩해서 받아주면 됨

 

POST 의 경우

 

JSP 페이지 상단에 request.setCharacterEncoding 을 명시한다.

 

1

2

3

4

5

6

7

8

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

 

<%@page import="java.util.*"%>

<%

 

    request.setCharacterEncoding("UTF-8");

 

%>

 

 

출처: http://joohee46.tistory.com/17

반응형