728x90


AJAX를 이용해서 utf-8로 인코딩된 한글 문자열을 post method로 php로 된 페이지에 보낼 경우

그냥 보내서 출력하면 문제 없을 수 있으나 php 페이지에서 파일에 저장하는 경우는 ms949에 적합하지 않은 문자열을 그냥 저장하기 때문에 다음에 ms949로 읽어 올 때 제대로 된 문자열을 읽어올 수가 없다.


이와 같은 경우 데이터를 받는 php 페이지에서 다음과 같은 작업을 한다.

 

 

// $_POST['name']에 넘겨받은 utf-8 한글 문자열이 있을 때

$ms949_str = iconv("UTF-8", "CP949", rawurldecode($_POST['name']);

 


이제 $ms949_str을 파일에 기록하면 다음에 읽을 때 제대로 된 문자열을 읽을 수 있다.

 

 

보조자료

AJAX: http://www.w3schools.com/ajax/default.asp

 

 

참고문헌: http://ddakker.tistory.com/179, PHP AJAX 한글 문제 기본 인코딩이 ms949일 때

 


PHP - (ajax) - javascript
 보낼때 - encodeURIComponent(category_name)
 받을때 - $category_name  = iconv("UTF-8", "CP949", rawurldecode($_POST[category_name]));

javascript - (ajax) - php
 보낼때 - rawurlencode(iconv("CP949", "UTF-8", "한글"))
 받을때 - decodeURIComponent(data.category_name.Text);

 

728x90

+ Recent posts