微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax传json到后台乱码

最近在使用ajax传送json数据到后台时,遇到了一个问题:数据传送后出现了乱码。在经过多次排查之后,我最终发现了问题所在。

$.ajax({
    url: "example.PHP",type: "POST",dataType: "json",data: {name: "张三",age: 18},success: function(data){
        console.log(data);
    }
});

ajax传json到后台乱码

以上是一段简单的ajax代码,将一个名字和年龄传送到后台,期望获得一个json格式的响应。但是,实际情况却是这样的:

$_POST = array(
    "name" => "鐘瑩","age" => 18
);
echo json_encode($_POST);

这是后台接收到请求后的处理方式,我们先看一下这里是如何出现乱码的:

PHP 中,如果直接输出中文,这些中文字符会按照当前的编码方式输出。而大多数浏览器认使用的是 utf-8 编码,当后台输出 gb2312(或 gbk 或其他编码格式)时,就会出现乱码。

这时,我们需要将后台的编码格式改成 utf-8,使用方法如下:

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

加入这句代码之后,就可以顺利地将 json 数据输出到前端了,而且中文也不会出现乱码了。

经过这次经验,我深刻意识到传送数据的编码格式对于中文的处理非常重要,而处理方式也不是很复杂。我相信,只要我们更加注意细节,就能够避免类似的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐