您的位置:88bifa必发唯一官网 > 必发88首页 > 这就造成显示页面时产生乱码

这就造成显示页面时产生乱码

发布时间:2019-05-20 22:01编辑:必发88首页浏览(106)

    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编码。这里就不多说了

    附测试例程
    客户端

    <!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 test</title> 
    </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 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;
      }
     }
    }

    </script>

    <form name='form1'>
    <input type="text" name='content' size=10>
    <input type="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("没有内容发送");
    }
    ?>

    引用自:

    您可能感兴趣的文章:

    • 完美解决PHP中文乱码
    • php和mysql中uft-8中文编码乱码的几种解决办法
    • php上传文件中文文件名乱码的解决方法
    • php url地址栏传中文乱码解决方法集合
    • php截取中文字符串不乱码的方法
    • php中json_encode UTF-8中文乱码的更好解决方法
    • PHP页面中文乱码分析
    • 在PHP中PDO解决中文乱码问题的一些补充
    • PHP中文乱码解决方案
    • php中文乱码问题的终极解决方案汇总

    本文由88bifa必发唯一官网发布于必发88首页,转载请注明出处:这就造成显示页面时产生乱码

    关键词: 必发88首页

上一篇:必发88首页复制代码 代码如下

下一篇:没有了