php 与javascript的json交互很简单,主要是要处理中文乱码问题
1、首先尽量使用utf-8编码,如果不是utf-8编码,在使用json_encode时中文会变为null,因为只对utf-8编码有效
当然如果不是utf-8编码可以在json_encode之前进行utf-8编码转换
2、如果使用utf-8编码
<?php $list = array('one' => '第一条数据' , 'two' => '第二条数据' ); $json = json_encode($list); echo $json; // 输出内容 : {"one":"\u7b2c\u4e00\u6761\u6570\u636e","two":"\u7b2c\u4e8c\u6761\u6570\u636e"} ?>
对与utf-8编码的中文,在json_encode之前应该对数据用urlencode转换
<?php $list = array('one' => '第一条数据' , 'two' => '第二条数据' ); foreach ($list as $key => $value) { $list[$key] = urlencode($value); //首先 } $json = json_encode($list); echo $json; // 输出 {"one":"%E7%AC%AC%E4%B8%80%E6%9D%A1%E6%95%B0%E6%8D%AE","two":"%E7%AC%AC%E4%BA%8C%E6%9D%A1%E6%95%B0%E6%8D%AE"} echo urldecode($json); // 输出 {"one":"第一条数据","two":"第二条数据"} ?>
注意最后要用urldecode转换回来