jquery ajax post 中文乱码问题

 

测试用到二个文件,一个是test.html,一个是test.php

test.html中,单击按钮向test.php用post方法提交请求

test.php中,用switch判断提交的参数,返回输出值

二个文件均为utf8编码(即记事本中写代码,保存时选择uft-8)

 

 

 
 

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.post("test.php",
    {
      name:"lxl",
      city:"Duckburg"
    },
    function(data,status){
      alert("数据:" + data + "\n状态:" + status);
    });
  });
});
</script>
</head>
<body>

<button>向页面发送 HTTP POST 请求,并获得返回的结果</button>

</body>
</html>

 
 
 
 


<?

//$id = (int)addslashes($_GET["name"]);
$name = addslashes($_POST["name"]);


switch($name)
{
case "zjh":
 //your code
 echo "张";
 break;
case "lxl":
 echo "里";
 break;
default:
 echo "好";
 break;
}


//echo "good!";
echo "你好卡!";
?>


运行结果:
 
 
ajax post - 加菲 - 加菲猫
 
如果文件不是UTF-8格式,那返回的中文将显示为乱码。
将test.html文件改为ANSI,test.php为UTF-8,中文显示正常;
将test.html文件改为ANSI,test.php也改为ANSI,中文显示乱码;
将test.html文件改为UTF-8,test.php也改为UTF-8,中文显示正常;
将test.html文件改为UTF-8,TEST.PHP改为ANSI,中文显示乱码;
 
所以,决定中文显示正常于否的关键,在于提交的目标php文件是否是UTF-8编码。
 
 
ajax post - 加菲 - 加菲猫
 jquery的ajax post提交请求,显示返回值为中文时的乱码

 

 

 

 

 

以下是在网上看到的一点内容,附在后面,说不定有用到的时候:

http://blog.csdn.net/phpme/article/details/1042623

一味的想改变XMLHTTP对象Post表单的发送方式,使它以GB2312来发送,完全找不到门路。后来经过论坛的朋友提醒,在后台接收数据时把编码转换,效果难道不是一样么。

后台语言如果是PHP,用 iconv( "UTF-8", "gb2312" , $_POST["post"]) 这个函数转换一下,轻松解决。至于ASP或其他后台语言的话,我并不熟悉,原理是一样的,在接收到数据后先转换编码再使用。

PS:XMLHTTP对象Post表单时,记得要增加2个表头设置^_^
var post="Apple=苹果&Banana=香蕉";
xmlObj.open ('POST',URL,true);
xmlObj.setrequestheader("content-length",post.length);
xmlObj.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlObj.send (post);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值