Thinkphp ajaxReturn解决中文unicode问题

来源:互联网 发布:各个算法复杂度 编辑:程序博客网 时间:2024/05/22 09:47

ajaxReturn 在thinkphp3.2中源码默认中文是被unicode的。需要自己修改在library->think->controller.class.php里面的ajaxReturn方法支持中文不被unicode


case 'JSON' :                // 返回JSON数据格式到客户端 包含状态信息                header('Content-Type:application/json; charset=utf-8');                foreach ( $data as $key => $value ) {                    $data[$key] = urlencode ( $value );                }                exit(urldecode(json_encode($data)));

但是以上方法只支持一维数组,如果是二维数组就有问题。你需要将二维数组变成一维数组,然后再用上面的方法

//多维数组转一维数组function array_multi2array($array) {     static $result_array=array();     foreach($array as $key=>$value)     {         if(is_array($value))         {             array_multi2array($value);         }         else              $result_array[$key]=$value;     }     return $result_array; }

还有一种方法升级php5.4以上。你可以再json_encode函数使用函数json_encode($data,JSON_UNESCAPED_UNICODE)

 case 'JSON' :                // 返回JSON数据格式到客户端 包含状态信息                header('Content-Type:application/json; charset=utf-8');                // foreach ( $data as $key => $value ) {                //     $data[$key] = urlencode ( $value );                // }                //exit(urldecode(json_encode($data)));                exit(json_encode($data,JSON_UNESCAPED_UNICODE));


0 0
原创粉丝点击