상세 컨텐츠

본문 제목

JSP페이지에 파라미터 한글깨짐 현상 처리

IT 세상/자바세상

by 이현민 (지후지율아빠) 2008. 9. 18. 14:03

본문

작년 가을부터 했던 프로젝트에서는 이미 만들어져있던 프레임웍 상에서 한글처리가 지원이 되어

그 부분에 신경을 쓰지 못했었다.

하지만, 4월에 홀로 투입된 프로젝트에서는 있는거라곤 오로지 에디트플러스 뿐... ㅜ.ㅡ

실력의 부족함을 절감하며 이것도 헉헉 거리면서 웹과 api문서를 뒤졌던 기억이 아련하다.

먼저 (한글)파라미터가 어떠한 과정을 거쳐 request/reponse를 하는지 알아보겠다.

 

========================================================================================

* 출처: http://www.javaservice.net

========================================================================================

많은 분들이 jsp에서 한글처리때문에 많은 고생을 하고 계신데 한글처리는
동작원리만 알면 쉽게 풀수 있는 문제입니다.
그럼. 동작원리를 잠깐 알아볼까요.... ^^
먼저 자바는 유니코드를 사용한다는 사실을 인지해야합니다.
(자바하시는 분들은 다 알고 있지만 한글처리를 하실때 많이 빼먹는 부분이기도합니다)
다시 말해서 jsp(java) 안에서는 문자열이 유니코드라는 것입니다.
그럼. 브라우저에서 request를 보낼 때 입니다.
HTTP 요청은 8859_1로 보냅니다. 즉 다시 말하면 한글완성형코드 그대로 변환없이
보냅니다. (byte그대로...)
일단 간략하게 그리면


브라우저 한글완성형코드 그대로 전송 --request(*)--> jsp 컨테이너에서 유니코드로 변환 --> 내부처리--response(*)--> 결과물을 브라우저로 전송


(*)부분에서 유니코드<-->해당문자열코드로 변환이 일어납니다.
request(*)에서 문자셋이 지정되어 있지 않으면 (이 말은 브라우저가 request를 요청할 때 특별히
문자셋을 지정하지 않았을 때, 가장 일반적인 상황입니다) 8859_1로 처리됩니다.

========================================================================================

 

결국 코드설정의 차이로 인해 한글이 깨지는 문제이므로 한글 파라미터를 넘겨야 할 경우에는

euc-kr 로 설정을 해주면 한글깨짐 현상을 막을수 있다는 얘기이다.

파라미터를 받는 부분에 다음과 같은 코드를 적용해주면 euc-kr로 설정이 가능하다.

 

1.보통의 파라미터를 get하는 경우의 코드는

   String subject = request.getParameter("subject");

2.파라미터를 "euc-kr"로 설정해주는 코드

   String subject = new String(request.getParameter("subject").getBytes("8859_1"),"euc-kr");

[출처] JSP페이지에 파라미터 한글깨짐 현상 처리|작성자 짜짜로니


 

반응형

관련글 더보기