• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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编码。这里就不多说了

    附测试例程
    客户端


    !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("没有内容发送");
    }
    ?>

    引用自:http://www.blogjava.net/huyi2006/articles/86154.html

    您可能感兴趣的文章:
    • 完美解决PHP中文乱码
    • php和mysql中uft-8中文编码乱码的几种解决办法
    • php上传文件中文文件名乱码的解决方法
    • php url地址栏传中文乱码解决方法集合
    • php截取中文字符串不乱码的方法
    • php中json_encode UTF-8中文乱码的更好解决方法
    • PHP页面中文乱码分析
    • 在PHP中PDO解决中文乱码问题的一些补充
    • PHP中文乱码解决方案
    • php中文乱码问题的终极解决方案汇总
    上一篇:Ajax中要注意的问题
    下一篇:建一个XMLHttpRequest对象池
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ajax+php中文乱码解决办法 ajax+php,中文,乱码,解决,