728x90
1. 개요
PHP 에서 Array 형 데이터를 JSON 포멧으로 출력하고자 하는 경우 json_encode 함수를 호출함으로써 간단하게 데이터 변환이 가능하다.
단, 해당 함수는 UTF-8 형태의 String 값만을 사용할 수 있기 때문에 iconv 를 사용하여 UTF-8 인코딩을 하여 사용해야만 한다.
그런데 여기서 문제가 발생하는데, 한글 데이터를 사용할 경우 json_encode 함수가 한글을 유니코드 형태로 자동으로 변환해서 출력하게끔 되어 있다.
2. 해결 방안
PHP 5.4 버전 이상을 사용할 경우, 다음과 같이 상수 변수 값을 옵션으로 줌으로써 간단하게 해결이 가능하다.
json_encode($arrJson, JSON_UNESCAPED_UNICODE);
그러나, 하위 버전 PHP를 사용하는 경우 json_encode 함수가 옵션 값을 받지 않기 때문에 해당 방법을 사용 할 수 없다.
따라서, 다음의 함수를 추가하여 해결하도록 한다.
function han ($s) { return reset(json_decode('{"s":"'.$s.'"}')); } function to_han ($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); } to_han (json_encode($arrJson));
728x90
'자료' 카테고리의 다른 글
[C#/VBNET] [WMI] 그래픽 카드 정보 (0) | 2021.04.09 |
---|---|
[C#/VB.NET] 노트북 배터리 정보 (0) | 2021.04.09 |
아톰(atom) 필수 설치 플러그인 (0) | 2021.03.25 |
JQuery ajax + PHP 예제 (0) | 2021.03.22 |
Grid 라이브러리-Datatables 사용법/예제 (0) | 2021.03.19 |