关注设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享ajax+php中文乱码解决办法教程,希望对大家能有一点小小的帮助。
AJAX的乱码的出现在的原因
由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。
解决方法之一就是在PHP文件中显示声明为GB2312
header("");
而对于发送到服务器的中文进行转码。
如下
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
因而这样可以解决乱码问题
方法二,是都采用UTF-8编码。这里就不多说了
附测试例程
客户端
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
titleajax post test/title
/head
body
div/div
script language="javascript"
/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("");
} catch (e) {
try {
ajax = new ActiveXObject("");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!="undefined") {
ajax = new XMLHttpRequest();
}
return ajax;
}
//在form 测试页面内有一个表单,一个显示的层
function sendData()
{
var msg=("");
var f=;
var c=;
//接收数据的URL
var url="dispmsg.php";
var poststr="content="+c;
var ajax=InitAjax();
("",,);
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;
}
}
}
/script
form name="form1"
input type="text" name="content" size=10
input type="button" value="确定"!--我用submit时就出错--
/form
/body
/html
服务器端
?php
header("");
if($_POST[content])
{
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
print("内容是".$_POST[content]);
}
else
{
print("没有内容发送");
}
?
引用自:/huyi/articles/86154.html
如果觉得《ajax+php中文乱码解决办法》对你有帮助,请点赞、收藏,并留下你的观点哦!