/** * @param $data * @param string $default_encoding * @param string $output_encoding */ public function outputJson($data, $default_encoding = 'UTF-8', $output_encoding = 'UTF-8') { if ($output_encoding != $output_encoding) { $data = recursive_mb_convert_encoding($data, $output_encoding, $default_encoding); } header("Content-type: text/html; charset=" . $output_encoding . "\n\n"); print json_encode($data); exit; }
/** * 配列の文字コード変換 * * @param $param * @param $to_encoding * @param string $from_encoding * @return array|string */ function recursive_mb_convert_encoding($param, $to_encoding, $from_encoding = "auto") { if (empty($from_encoding)) { $from_encoding = "auto"; } if (is_array($param)) { foreach ($param as $k => $v) { $param[$k] = recursive_mb_convert_encoding($v, $to_encoding, $from_encoding); } } else { $param = mb_convert_encoding($param, $to_encoding, $from_encoding); } return $param; }