900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > PHP ajax 传递中文乱码 ajax+php传递中文乱码解决办法

PHP ajax 传递中文乱码 ajax+php传递中文乱码解决办法

时间:2024-05-05 00:13:52

相关推荐

PHP ajax 传递中文乱码 ajax+php传递中文乱码解决办法

AJAX的乱码的出现在的原因

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。

解决方法之一就是在PHP文件中显示声明为GB2312

header("Content-Type:text/html;charset=GB2312");

而对于发送到服务器的中文进行转码。

如下

$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);

因而这样可以解决乱码问题

方法二,是都采用UTF-8编码。这里就不多说了

附测试例程

客户端

ajax post test

/**

* 初始化一个xmlhttp对象

*/

function InitAjax()

{

var ajax=false;

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {

ajax = false;

}

}

if (!ajax && typeof XMLHttpRequest!='undefined') {

ajax = new XMLHttpRequest();

}

return ajax;

}

//在form 测试页面内有一个表单,一个显示的层

function sendData()

{

var msg=document.getElementById("msg");

var f=document.form1;

var c=f.content.value;

//接收数据的URL

var url="dispmsg.php";

var poststr="content="+c;

var ajax=InitAjax();

ajax.open("POST",url,true);

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

ajax.send(poststr);

ajax.onreadystatechange=function(){

if(ajax.readyState==4 && ajax.status==200){

alert("I got something");

msg.innerHTML=ajax.responseText;

}

}

}

服务器端

header("Content-Type:text/html;charset=GB2312");

if($_POST['content'])

{

$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);

print("内容是".$_POST['content']);

}

else

{

print("没有内容发送");

}

?>

引用自:/huyi/articles/86154.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。