특정 폴더에 있는 파일들을 불러와서 화면에 출력하기 위해 json_encode() 함수를 사용했습니다.
이렇게 files 폴더 아래에 4개의 파일들이 있고, 이 4개의 파일을 화면에 보여주고 싶은데...
이렇게 한글명이 들어가 있는 파일은 (null)이라고 찍힙니다.
순간 당황했는데 인터넷을 뒤져서 찾았습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class MoaJson { private static $detect_order = 'UTF-8,EUC-KR'; public static function encode($data, $detect_order=null) { if ($detect_order === null) $detect_order = self::$detect_order; return json_encode(self::convertEncoding($data, $detect_order)); } private static function convertEncoding($data, $detect_order) { if (is_array($data)) { foreach ($data as $k=>$v) { $data[$k] = self::convertEncoding($v, $detect_order); } } else if (is_string($data)) { $detected = mb_detect_encoding($data, $detect_order); if ($detected != 'UTF-8') $data = iconv($detected, 'UTF-8', $data); } return $data; } } | cs |
이렇게 MoaJson.class라는 파일을 하나 만들었구요.
1 2 3 | include_once ( '/classes/MoaJson.class.php' ); $moaJson = new MoaJson(); $jsonString = $moaJson::encode( $jsonArray ); | cs |
이렇게 사용하니까 잘 되네요^^
댓글