您的位置:首页 > Web前端 > JavaScript

解决json_encode不支持中文问题

2013-07-24 14:33 519 查看
<?php

/**

* 解决json_encode不支持中文问题

*

* @Package

* @Copyright (c) 1998-2012 All Rights Reserved

* @Author

* @Version $Id$

*/

/**

* 对变量或者数据进行urlencode编码,使得在进行json_encode的时候进行编码的不是中文,防止json_encode失败

* urlencode 对字符串进行编码 <?php // echo urlencode("要转码的内容");?>

* urldecode urldecode — 解码已编码的 URL 字符串 ,返回解码后的字符串。

* @access private

* @param $var

* @return array

*/

function var_urlencode($var) {

if (empty ( $var )) {

return false;

}

// 判断是否为数组

if(is_array ($var)){

foreach ($var as $k => $v ) {

// is_scalar : 检测变量是否为标量

if (is_scalar ($v)) { // if用来处理不是数组的情况

$var [$k] = urlencode ($v );

}

else {//else用来处理数组

$var [$k] = var_urlencode ( $v );

}

}

}else {//用来处理数组

$var = urlencode ( $var );

}

return $var;

}

/**

* 对编码后的变量进行json_encode,json_encode不支持中文的问题

* @access public

* @param $var

* @return string

*/

function var_json_encode($var) {

$_var = var_urlencode($var);

$_str = json_encode($_var);

return urldecode($_str);

}

/*Test*/

$array = array (

'name' => '路人甲',

'age' => '13',

'profile' => array (

'uid' => 12,

'uname' => 'lili',

'school' => '中学',

'info' => array (

'hometown' => '亚洲',

'fond' => '苹果',

'tool' => 'bike',

),

),

);

$json_str = var_json_encode($array);

echo $json_str;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: