大家做php一般是utf8还是gb2112啊

解决方案 »

  1.   

    mysql_query("SET NAMES gb2312");header("Content-type: text/html;charset=GBK");
      

  2.   

    这两句我有写啊 我写的是charset=gb2312
    js接受表单的值时如果不用escape函数 在php中显示是乱码 
    如果用了显示是%u63AA%u52E4%u53BF这种
      

  3.   

    是js中escape产生的乱码的原因 所以显示就是那个
    我用urlencode是没用的
    难道我用unescape再显示页面还原?
    如果js页面不用escape的话 好象写不进去
      

  4.   

    错了 如果js页面不用escape的话 写进php就是乱码 用了就是%dfsa31之类的了
    怎么办?
      

  5.   

    你要在PHP端对你用过JS的escape编码的数据解码,我发你一段,由于这里没发UTF8 TO GB2312的类,所以GetGb2312函数不可用,你可以到我空间里下载更多的编码处理的类:
    /*
     *使用 PHP 解析 javascript escape() 编码过的字串为UTF-8
     *例:1
     *
     *$tem=new UnEscape();
     *echo $tem->GetUtf8("%u624B%u673A%u95E8%u6237");
     *echo $tem->GetGb2312("%u624B%u673A%u95E8%u6237");
     */
        function UnEscapeToUtf8($ar){
         foreach($ar as $val){
           $val = intval(substr($val,2),16);
           if($val < 0x7F){        // 0000-007F
              $c .= chr($val);
           }elseif($val < 0x800) { // 0080-0800
              $c .= chr(0xC0 | ($val / 64));
              $c .= chr(0x80 | ($val % 64));
           }else{                // 0800-FFFF
              $c .= chr(0xE0 | (($val / 64) / 64));
              $c .= chr(0x80 | (($val / 64) % 64));
              $c .= chr(0x80 | ($val % 64));
           }
         }
         return $c;
        } class UnEscape{
        function GetUtf8($value=""){
          $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
          return urldecode($text);
        }    function GetGb2312($value=""){
          $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
      $obj=new Gb2312Utf8();
          return $obj->Utf8ToGb2312(urldecode($text));
        }
    }
      

  6.   

    问题找到解决的办法了 我在js里不用escape函数 js是utf-8编码吧 
    而我的php是gb2312 我在php用函数把utf-8转化为gb就OK了
    谢谢LS的 收藏代码学习中
      

  7.   

    header("Content-Type:text/html;charset=GB2312"); //中文支持
    在php代码里加入这个就可以了