본문 바로가기
프로그래밍/PHP

AJAX JSON 데이터 전달시 한글 문제

by 베리베리 2009. 7. 7.

AJAX JSON 데이터 전달시 한글 문제

JSON은 유니코드만을 지원한다. JSON으로 데이터를 보낼때는 유니코드 형식으로 보내야만 한다. euck-kr로 인코딩해서 보낼 경우, 익스플로어 6.0이상 버전에는 문제가 없지만, 하위 버전의 브라우저에서는 한글로 인해, 스크립트 에러가 발생할 수 있다. 이러한 스크립트 에러로 JSON 객체가 생성되지 않을 것이다. 이럴 경우 JSON데이터의 인코딩을 반드시 유니코드 형식으로 설정해야 한다.

PHP에서 데이터 생성시

echo rawurlencode(iconv("CP949", "UTF-8", $strData));

iconv함수는 원하는 문자인코딩으로 변경시켜주는 PHP함수 인데, 이 함수를 이용하여 CP949(MS 확장 완성형, euc-kr 포함)를 UTF-8로 인코딩 시켜줍니다.

rawurlencode 함수는 URI문자를 인코드하는 함수입니다.

넘겨받은 인코드된 데이터는 자바스크립트에서 다음과 같이 디코드 할 수 있습니다.

var jsonData = decodeURIComponent(response);

decodeURIComponent함수는 알다시피 인코드된 URI문자를 디코드 하는 함수입니다.

var jsonData = decodeURIComponent(response);

댓글