ajax+php中文乱码的解决

时间:2016.04.24 发布人:dwxy3z7ibs3

ajax+php中文乱码的解决

已解决问题

谷歌dwxy3z7ibs3用户在2016.04.24提交了关于“波克**ajax+php中文乱码的解决”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-04-02T10:44:07。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你就是当代的活雷锋,太感谢了 !

希望以下的回答,能够帮助你。

第1个回答

用户名:sd_mj  

由于XMLh**TTP采用的是Unicode编码上传**,而一般来自页面采用的是gb2312,这就造成显示页面时**生乱码迅执清落鸡。而当在获取页面时的XMLh**ttp返回的是utf-8编码,这就造成了显示**生乱码。
解决方法之一就是在Ph**P文件中显示声明为GB2312

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

而对于发送到服务器的中文进行转码。
如下
$_POST钢斤序["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
因而这样可以解决乱码问题

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

附测试例程
客户端

<!DOCTYPEh**TMLPUBLIC"-//W3C//DTDh**TML4.01Transitional//EN">
<html>
<head>
<meta问答http-equiv="Content-Type"co环及导聚历粒望物介ntent="text/html;charset=gb2312">
<title>aj总越红笔装降找axposttest</title>
</head>
<body>
<d谓交运铁带ivid="msg"></统测工矛互细管div>
<scriptlanguage="j**ascript">
/直始敌知**
*初始化一个xmlhttp对象
*/
functionInitAjax()
{
var很实息十劳个所审ajax=false;
try{
ajax=newActi纸veXObject("Msxml2.XMLh**TTP");
}catch(e){
try{
ajax=newActiveXObject("Microsoft.XMLh**TTP");
}catch(E){
ajax=时边false;
}
}
if(!ajax&&typeofXMLh**ttpRequest!='undefined'){
aja尼如占补易但模各煤x=newXMLh**tt初才条就钟八引至pRequest();
}
returnajax;
}
/行员无地哪时难/在form测试页面内有一个表单,一个自显示的层
functionsendData()
{
varmsg=docume示美甲nt.getElementById("msg");
varf=document.form1喜烧依探减燃;
varc=f.content.value;
//呀组积达沉品升混但钱接收**的URL
varurl="dispmsg.php";
varpoststr="content="+c;
varajax=InitAjax();
***.open("POST",url,true);
ajax.setRequesth**eader("Content-Type","application/x-www-form-urlencoded");
ajax.send(poststr);
ajax.onreadystatechange=function(){
if(ajax.readyState==4&&ajax.status==200){
alert("Igotsomething");
msg.innerh**TML=ajax.responseText;
}
}
}

</script>

<formname='form1'>
<inputtype="text"name='content'size=10>
<inputtype="button"value="确定"onclick="sendData()"><!--我用submit时就出错-->
</form>
</body>
</html>

服务器端
<?php
header("Content-Type:text/html;charset=GB2312");
if($_POST['content'])
{
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
print("内容是".$_POST['content']);
}
else
{
print("没有内容发送");
}
?>