json_encode中文乱码_json_encode中文乱码或不显示问题

更新时间:2017-05-03    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

 代码如下

/* 处理json_encode中文乱码 */
$data = array ("game" => "冰火国度", "name" => "刺之灵", "country" => "冰霜国", "level" => 45 );
echo json_encode ( $data );
echo "
";
$newData = array ();
foreach ( $data as $key => $value ) {
$newData [$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $newData ) );
?>

结果显示:

 代码如下 {“game”:”u51b0u706bu56fdu5ea6″,”name”:”u523au4e4bu7075″,”country”:”u51b0u971cu56fd”,”level”:45}
{“game”:”冰火国度”,”name”:”刺之灵”,”country”:”冰霜国”,”level”:”45″}


找到一个更全面的解决乱码方法

 代码如下

// 将数组转换成Json格式,中文需要进行URL编码处理
function Array2Json($array) {
    arrayRecursive($array, "urlencode", true);
    $json = json_encode($array);
    $json = urldecode($json);
    // ext需要不带引号的bool类型
    $json = str_replace(""false"","false",$json);
    $json = str_replace(""true"","true",$json);
    return $json;
}

function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die("possible deep recursion attack");
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }

        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}
?>

本文来源:http://www.bbyears.com/wangyezhizuo/32366.html

猜你感兴趣

热门标签

更多>>

本类排行