解决json_encode不支持中文问题

<?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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值