PHP下解决Json中文

PHP_Json中文解决

Json是现在被广泛使用的用于传递字符串的格式,相比xml更显得简单易懂以及更方便操作,php下就俩个函数,json_encode() AND json_deconde()。不过json对中文的支持并不是很好,如果使用json_encode()处理如数组,数组中若存在中文,则会作空白处理。

解决中文的一种方法就是先将中文转换为另一种编码格式,然后再使用json_encode(),最后再用解码把json串进行解码。还有一种方式就在php新版本中得到了解决,在下面的代码为展示。

以下为代码示例

<?php 
    header("Content-type:text/html;charset=utf-8");

    $arrayName = array('city' => '广东','goods'=>'cookies' ); 
    $arr = json_encode($arrayName);
    echo $arr."</br>";

    var_dump(json_decode($arr));
    echo "</br>";
    echo urldecode(json_encode(ch_json($arrayName)))."</br>";
/*  
    需要php版本在5.4以上
    echo json_encode($arrayName,JSON_UNESCAPED_UNICODE);
*/

    function ch_json($arr){
        if(is_array($arr)){
            foreach ($arr as $key => $value) {
                $arr[urlencode($key)] = ch_json($value); 
            }
        }else{
            return urlencode($arr);
        }
        return $arr;
    }
 ?>

代码已上传:
http://download.csdn.net/detail/xuandaijian/9307499#comment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值