Ajax로 한글 파라미터를 넘길시 생기는 문제이다.
요즘엔 브라우저가 알아서 인코딩하고 알아서 받는다고는 하지만 그렇지 않은 경우가 있는법!
Ajax는 UTF-8이다.
그럼 어떻게 한글 파라미터를 넘겨야 할까.
먼저 파라미터로 넘길 한글 단어든 문잘을 UTF-8로 인코딩 하면된다.
우선은 자바스크립트에서 인코딩을하고 이 파라미터를 받을 JSP파일에서 디코딩을 하면 된다.
var encodingChar = escape(encodeURIComponent("한글"));
그런 다음 Ajax 파라미터에 실어 날려 버리면 된다.
JSP 파일에서는 모두가 알고 있듯이 파라미터로 받은 문자를 디코딩하자.
String decodeChar = new String(URLDecoder.decode(request.getParameter("ParameterName"), "UTF-8"));
그러면 Ajax에서는 한글이 %23%D3 뭐이런 문자로 인코딩 되어 넘어 올것이고, JSP안에서는 그 문자를 받아 디코딩 하면 원래 입력했던 한글이 디코딩 되어 나오는것을 확인 할 수 있을것이다.
자 왠 만한 브라우저에서는 이 방법을 스면 한글이 잘나온다.
하지만 간혹가다가 참 쌍욕나오게 만드는 브라우저가 있다.
예를 들어 S사의 특정 기기에 탑재 되는 폴어쩌고 하는 브라우저 말이다.
다른 브라우저는 테스트 해보지 못했으나 위에말한 브라우저 에서는 저 방법이 안먹힌다.
왜안되는지 2일을 머리싸메고 고민해봐도 방법은 안나오는듯 했으나..
GET방식으로 호출하던것을 POST방식으로 호출하니 이게 왠일..
아주 잘 되는것이 아닌가??
모두들 나와 같은 경험을 할것 같지는 않지만 혹시나 하는 마음에 블로그에 글을 써본다.
아..저것때문에 시간 날린게 얼마인가..
다 내탓이니 공부나 더하자.
요즘엔 브라우저가 알아서 인코딩하고 알아서 받는다고는 하지만 그렇지 않은 경우가 있는법!
Ajax는 UTF-8이다.
그럼 어떻게 한글 파라미터를 넘겨야 할까.
먼저 파라미터로 넘길 한글 단어든 문잘을 UTF-8로 인코딩 하면된다.
우선은 자바스크립트에서 인코딩을하고 이 파라미터를 받을 JSP파일에서 디코딩을 하면 된다.
var encodingChar = escape(encodeURIComponent("한글"));
그런 다음 Ajax 파라미터에 실어 날려 버리면 된다.
JSP 파일에서는 모두가 알고 있듯이 파라미터로 받은 문자를 디코딩하자.
String decodeChar = new String(URLDecoder.decode(request.getParameter("ParameterName"), "UTF-8"));
그러면 Ajax에서는 한글이 %23%D3 뭐이런 문자로 인코딩 되어 넘어 올것이고, JSP안에서는 그 문자를 받아 디코딩 하면 원래 입력했던 한글이 디코딩 되어 나오는것을 확인 할 수 있을것이다.
자 왠 만한 브라우저에서는 이 방법을 스면 한글이 잘나온다.
하지만 간혹가다가 참 쌍욕나오게 만드는 브라우저가 있다.
예를 들어 S사의 특정 기기에 탑재 되는 폴어쩌고 하는 브라우저 말이다.
다른 브라우저는 테스트 해보지 못했으나 위에말한 브라우저 에서는 저 방법이 안먹힌다.
왜안되는지 2일을 머리싸메고 고민해봐도 방법은 안나오는듯 했으나..
GET방식으로 호출하던것을 POST방식으로 호출하니 이게 왠일..
아주 잘 되는것이 아닌가??
모두들 나와 같은 경험을 할것 같지는 않지만 혹시나 하는 마음에 블로그에 글을 써본다.
아..저것때문에 시간 날린게 얼마인가..
다 내탓이니 공부나 더하자.
'JavaScript' 카테고리의 다른 글
JavaScript의 삼항연산자..! (0) | 2012.05.22 |
---|---|
JavaScript의 비교 연산자와 일치 연산자..! (0) | 2012.05.22 |
JavaScript Parameter Encoding..! (0) | 2011.12.20 |
쿠키(Cookie)에 아이디를 저장하기..! (0) | 2011.09.07 |
JavaScript window.open...! (0) | 2009.11.04 |