티스토리 뷰
$data['homepage'] = 'http://tkdev.tistory.com/';
$data['memo'] = '비용러브 입니다.';
위와 같은 값을 JSON 문자열로 만들면 아래와 같습니다.
{"nick":"\ube44\u63c","homepage":"http:\/\/tkdev.tistory.com\/","memo":"\uc785\ub2c8\ub2e4."}
한글이 '비용러브'→'\ube44\ud63c', '입니다'→'\uc785\ub2c8\ub2e4'처럼 바뀌죠.
(이것을 보고 한글이 깨졌다 하는데 잘못된 표현이죠.)
생성할 때 한글이 온전하게 표현될 수 있도록 하는 방법은 생략합니다.
(참고로 PHP 5.4 버전에 json_encode() 함수에 추가된 옵션 사용하면 간편)
이번 글은 위 문자열에서 \uXXXX 부분을 한글화하는 방법만 적습니다.
정규식으로 \u로 시작하는 문자열을 구해 json_decode() 함수를 이용해 변환하는 초 간단 예제입니다.
function han($s) { return reset(json_decode('{"s":"'.$s.'"}')); }
function to_han($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); }
$test = '{"nick":"\ube44\ud63c","homepage":"http:\/\/tkdev.tistory.com\/","memo":"\uc785\ub2c8\ub2e4."}';
echo to_han($test);
실행 결과 아래 문자열 출력됩니다.
{"nick":"비용러브","homepage":"http:\/\/tkdev.tistory.com\/","memo":"'비용러브입니다."}
'PROGRAMMING' 카테고리의 다른 글
동영상강의 시스템 및 이러닝 전문 교육 웹사이트 제작해 드립니다. (0) | 2021.01.08 |
---|---|
Node.js 이용한 서버리스(Serverless) 개념잡고 따라해보기! (0) | 2019.01.08 |
2017년 FRONT-END 기술스택 (0) | 2017.08.21 |
HTTP Cache 튜토리얼 (0) | 2016.06.28 |
검색엔진 크롤링 방지 (0) | 2016.04.01 |