|
ajax를 사용하는데 있어 가장 큰 난관중 한가지가 한글 처리이다.
일반적으로 제시하는 한글 처리가 제대로 되지 않는다면 다음의 경우가 대안일 수 있다. 나의 경우 Struts 환경에서 해결한 방법이다. ajax -> struts ... struts는 /WEB-INF/web.xml 에 한글 필터링 처리가 되어있다. 즉, 한글 파라메타 값을 처리하기 위해 설정한 것이다. 이경우 별도의 처리없이 스트럿츠 내에서 한글 파라메타를 원활하게 사용할 수 있다. 하지만 이게 ajax와 궁합에 문제를 발생한다. ajax는 UTF-8 로 인코딩하여 파라메타를 전송한다. 그런데 내가 사용하는 환경에선 EUC-KR로 인코딩하여 파라메타를 전송토록 설정되었다. 즉, ajax로 파라메타 전송시 UTF-8 -> EUC-KR 두 번의 인코딩이 발생되어 한글이 깨진다. 일반적으로 jsp에서는 이와 같은 문제가 없이, ajax를 통해 파라메타 전송시 encodeURIComponent()를 사용하여 전송해 주면 된다. 예) encodeURIComponent(document.f.name.value) 수신하는 jsp 에서는, request.setCharacterEncoding("utf-8"); //한글 깨짐 방지를 위해 utf-8 디코딩 이렇게 해주면 된다. 스트럿츠에서는 위의 방법이 통하지 않는다.(내가 사용중인 환경에서는...) 이를 해결하기 위해 ajax 부분에 uriEncode 함수를 만들어서 처리했다. function uriEncode(data) { if(data != "") { var encdata = ''; var datas = data.split('&'); for(i=1;i<datas.length;i++) { var dataq = datas[i].split('='); encdata += '&'+encodeURIComponent(dataq[0])+'='+encodeURIComponent(dataq[1]); } } else { encdata = ""; } return encdata; } 그리고 스트럿츠 쪽에서는 디코딩해서 한글 깨짐을 방지할 수 있다. URLDecoder.decode(addrForm.getTag_name(),"UTF-8");
|
메모장
이글루 파인더
카테고리
전체
Agile Methodology Design Patterns JAVA Frameworks Open API DB관련 개발Tool System Web Server HTML/SCRIPT Talk Talk My Life 생활의 발견 허슬 두산! Fun Fun!!! 즐겨찾기 준비중 방명록 최근 등록된 덧글
우하하-_-' 유용해서 ..
by 미나 at 11/20 함께 생각하고 행동할 수.. by 강민철 at 10/21 신입개발자 인데 미흡한.. by seo at 10/13 유용한 정보 감사합니다.. by Nerv\\\'s at 09/23 저도 좋은글 담아갑니다.. by 풍 at 09/18 ㅎㅎㅎㅎ 저는 지금 개.. by 이종화 at 08/19 디자인패턴 공부하려는데.. by 이현승 at 07/22 좋은 글 잘 봤습니다. .. by 김진학 at 06/29 좋은글 감사합니다. 유.. by 엄성권 at 03/11 좋은 글 보고 갑니다. 제.. by 우기 at 01/10 최근 등록된 트랙백
Soma buy soma chea..
by Watson soma cheap. Buy soma online. by Buying cheap soma f.. Retin a. by Retin a and lip rhytid.. joinc wiki::소프트웨어.. by yundream의 프로그래.. 내 손안의 PC - 자바가 .. by 上善若水 저도 agile에 관심이 많.. by lovelove님의 이글루 JUnit 4로 뛰어들기 by 고안해 내는 재능 inheritnace vs dele.. by Bullshit Life framework = framewor.. by 고안해 내는 재능 Struts iBATIS Spring by 고안해 내는 재능 포토로그
이전블로그
이글루링크
라이프로그
| |||