你用ajax传送数据的时候用的是什么啊?xml么?如果是的话,就是编码的问题了,一个是gb2312,一个是utf-8同步就可以了吧~

解决方案 »

  1.   

    应该是ajax传递过程中encoding的问题
      

  2.   

    请养成从网页到数据库合部使用 utf-8 的习惯 ^_^
      

  3.   

    应该是xml吧。我对AJAX不熟悉。
    是别人给我的一个AJAX例子。function createObj()
    {
      var o=null;
      if(typeof(XMLHttpRequest)!="undefined") return new XMLHttpRequest();  
      if(window.ActiveXObject){
        var MSXML=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];
        for(var i=0;i<MSXML.length;i++){
           try{
             o= new ActiveXObject(MSXML[i]);return o;
           }
           catch(e){}
        }
      }
      return null;
    }function SendData(v){
     var o=createObj();//创建ajax对象
     var url="testfrench.php?qid="+v;//===============你请求的url,参数为qid,你的answer.php需要的
     o.open("get",url,true);//=========================
     o.onreadystatechange=function(){
       if(o.readyState==4){
         if(o.status==200)$("taAnswer").value=o.responseText;
         else alert("发生错误!\n\n"+o.responseText);
       }
     }
     o.send(null);//发送请求
    }在answer.php中,得到参数,查询数据库,并输出<?php$qid=$_GET['qid'];
    $answer="";
    // 从数据库中得到值 
    $answer = $row['answer']; 
    echo utf8_encode($answer); die();//注意这里要停止输出了,要不如果你的php页面还有其他内容也会一起输出
    ?>显示结果如下: 
    VIVIMIND™ : 
    &#61607; Protège la structure cérébrale liée à la mémoire et à l’apprentissage 在PHP中我用utf8_encode函数可以显示大多数特殊字符。不能正确显示 TM、格式, 最严重的是不能正确显示 ’不知道怎么同步?
      

  4.   

    怎么解决?如何保证encoding正确?
      

  5.   

    你试试
    var url="testfrench.php?qid="+encodeURIComponent(v)
      

  6.   

    问题解决了。 
    犯了一个低级错误,呵呵.... 不能显示单引号,原因可能是 我用中文word软件打开客户给我的法文word文档,单引号可能是中文编码,我需要手动修改。 
    在word中,我看不出这个错误,即使我重新输入单引号,然后拷贝通过PHP form存到数据库,也还是一样有问题。 
    所以我在PHP form中修改这个单引号,或者数据库中修改单引号,这样显示就没有问题了。 
    非常感谢各位的帮助!