如何正确处理PHP Ajax乱码
程序员文章站
2022-06-15 17:29:16
...
由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。
PHP Ajax乱码解决方法之一就是在PHP文件中显示声明为GB2312
header("Content-Type:text/html;charset=GB2312");
而对于发送到服务器的中文进行转码。
如下
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
因而这样可以解决PHP Ajax乱码问题
方法二,是都采用UTF-8编码。这里就不多说了
PHP Ajax乱码解决示例之客户端
- !DOCTYPE HTML PUBLIC "-//W3C//
DTD HTML 4.01 Transitional//EN">- html>
- head>
- meta http-equiv="Content-Type"
content="text/html; charset=gb2312">- title>ajax post testtitle>
- /head>
- body>
- div id="msg"> /div>
- script language="javascript">
- /**
- * 初始化一个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 XMLHttp
Request!='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;
- }
- }
- }
- /script>
- form name='form1'>
- input type="text" name='content' size=10>
- input type="button" value="确定"
onclick="sendData()"> !--我用submit时就出错-->- /form>
- /body>
- /html>
PHP Ajax乱码解决示例之服务器端
- ?php
- header("Content-Type:text
/html;charset=GB2312");- if($_POST['content'])
- {
- $_POST["content"]=iconv("
UTF-8","gb2312",$_POST["content"]);- print("内容是".$_POST['content']);
- }
- else
- {
- print("没有内容发送");
- }
- ?>
以上代码示例就是PHP Ajax乱码的相关解决方法,希望对又需要的朋友有所帮助。
上一篇: 都有哪些地方的编码模式需要注意
下一篇: laravel 下函数内访问函数外变量