배열을 json_encode() 해서 json으로 바꿀때 한글 값이 유니코드로 깨져 들어가는 현상을 해결하는 방법.
PHP 버전별로 다르게 구현한다.
1. PHP 5.4 이상
$array = array("foo","bar"); $result = json_encode($array,JSON_UNESCAPED_UNICODE);
2. PHP 5.3 이하
function my_json_encode($arr) { //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); }); return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); } $array = array("foo","bar"); $result = my_json_encode($array);
출처: http://php.net/manual/kr/function.json-encode.php#105789
반응형
LIST
'PHP & Laravel' 카테고리의 다른 글
반응형 웹사이트에서 긴 문장의 단어 잘리는 문제 해결 방법 (0) | 2017.06.01 |
---|---|
[PHP] 인코딩 판단하여 UTF-8로 변환 (0) | 2016.11.08 |
[PHP] 유투브 주소에서 아이디만 뽑아오기 (0) | 2011.12.18 |
[jQuery] 궁극의 아이프레임 높이 자동 조절 (0) | 2011.12.03 |
[PHP] PHP로 Internet Explorer 버전 알아내기 (0) | 2011.12.02 |