2013. 10. 17.

GET 방식으로 한글값 전달. 근데 이상한 문자로 나오면?

GET 방식으로 url 뒤에 한글 보냈는데, 받는 쪽 PHP에서 확인하니 깨짐 현상이 생긴다.
현재 주므르고 있는 상황은 아래와 같다.

* A.php는 서버단에서 연산하고 자바스크립트 구문을 만들어 출력한다.
* 본문에서는 어떤 이벤트가 발생했을때 동적으로 A.php를 스크립트로 추가 한다.

s = document.createElement('script');
s.src = './A.php?param=뭐임마';

대충 위처럼 본문에서 A.php를 동적으로 삽입한다. 이것도 나름 AJAX 인건가... 잘 모르겠다.  근데 A.php의 PHP 문장에서 저 param값이 '뭐임마'이 아니다. 흔히 인터넷 주소창나 에서 볼 수 있는 %EC&A7%80%EB.... 이렇게 변신해 있다.

A.php에서 값을 echo로 출력해보려고 하면 자꾸 스크립트 오류가 나서 열채게 한다. 왜그런진 모르겠고 화만 치밀었다. 뭔가 인코딩이 된 것 같아서 이것 저것 인코딩/디코딩 PHP 함수를 다 갖다 써 봤다.

A.php 에서 변수 사용할 때 디코팅 함수에 담궈 준다.
$param = URLDecode( $_GET[param] );
이렇게 디코딩 함수를 한번 통과 시켜 주니, 한글이 제대로 나온다.

댓글 1개 :