php ajax出现中文的解决办法

来源:互联网 发布:bf109战斗机数据 编辑:程序博客网 时间:2024/05/18 18:53

在使用ajax在前端向后台请求数据时,如果数据出现中文,那么在返回数据时会出现错误。json_encode只能接受utf8的数据,当json_encode碰到中文的时候会自动将中文从utf8转换成unicode类型。解决办法有一下几个:

1.JSON_UNESCAPED_UNICODE选项, 故名思议, 就是说, Json不要编码Unicode.

<?phpecho json_encode("中文", JSON_UNESCAPED_UNICODE);//"中文"


2.把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了。

$array = array('test'=>urlencode("我是测试"));$array = json_encode($array);echo urldecode($array);//{"test":"我是测试"} 


3.在客户端进行unicode解码

php 端

$channelNames = array ();

foreach ( $tempNames as $item ) {
$channelNames [] = $item ['name'];
}
echo json_encode ( $channelNames, JSON_UNESCAPED_UNICODE );

js 端

       success: function(result){
        //console.log(decodeURI(result));
        //json_encode时中文会进行转义,所以必须使用decodeURI进行转换回来
        //decodeURI(result)是一个字符串
        //channelNames=decodeURI(result).split(',');
    },


参考资料:

http://blog.csdn.net/lanqiao825/article/details/26700809

0 0
原创粉丝点击