JavaScript2012. 1. 30. 21:38
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방식으로 호출하니 이게 왠일..

아주 잘 되는것이 아닌가??

모두들 나와 같은 경험을 할것 같지는 않지만 혹시나 하는 마음에 블로그에 글을 써본다.

아..저것때문에 시간 날린게 얼마인가..

다 내탓이니 공부나 더하자. 
Posted by Z700zZz