JSON 통신을 하다보면 Android 기반으로 보내거나 기타 다른 플랫폼과 연동할 경우 한글에서 문제가 많이 발생하곤 한다.
그래서 예전부터 알려져 있는 방식을 간단한 함수로 만들었다.
방식은 배열에 존재하는 값을 일일이 URL encoding을 하는 방법이 있었다.
URL encode 시에는 Javascript에서 디코딩이 쉽게 하기 위해서 PHP의 rawUrlEncode 함수를 이용하였다.
모든 내용은 아래의 소스를 참고하시도록 바란다.
function urlencodeArray($arr) { $res = array (); foreach ( $arr as $key => $value ) { if (is_array ( $value )) { $res [$key] = urlencodeArray ( $arr [$key] ); } else { $res [$key] = rawUrlEncode ( $arr [$key] ); } } return $res; } function retunJson($arr) { $res = urlencodeArray ( $arr ); return json_encode ( $res ); }
자바 스크립트에서는 아래와 같은 디코딩 함수를 하나 만들어서 사용하면 좋다.
function decodeObj(obj) { var re_obj = {}; for ( var key in obj) { if (typeof obj[key] === 'object') { re_obj[key] = decodeObj(obj[key]); } else { re_obj[key] = decodeURIComponent(obj[key]); } } return re_obj; }
'Programing > PHP' 카테고리의 다른 글
[PHP] 비교연산자와 삼항 연산자(조건부 연산자) 알아보기. (0) | 2015.12.21 |
---|---|
PNG 용량을 줄이는 프로그램을 만들어 봅시다. (0) | 2015.12.10 |
PHP Mailer 를 이용한 메일 발송 클래스 제작 (0) | 2015.12.07 |