如果我 ?t="囧"echo iconv('UTF-8','GB2312',utf8_encode($_REQUEST['t']));//这个就是返回空..请问这种情况怎么处理啊?谢谢!
因为是ajax 他好象默认是utf 所以我这边.utf8_encode($_REQUEST['t'] 了一下

解决方案 »

  1.   

    http://localhost/d.php?t=囧echo $_REQUEST['t']; 是可以的一用到ajax请求 就一定要 iconv('UTF-8','GB2312',$_REQUEST[t]); 这样 js 才能alert出中文..如果一出现奇怪的字 比如 "囧" 就不显示了!!alert 不出来了;
      

  2.   

    这个和字符集有关
    比如有utf8里的的字,GBK就没有这个字另外,不要在如果我 ?t="囧" 直接定中文,应将中文编码urlencode直接?t="囧" ,编码和客户端浏览器相关,也就是说,客户端IE如果GB,传过去的GBK如果你的apache是utf8的,解析url就可能出错
      

  3.   

    首先有utf8有的,GB和GBK不一定有,如果强制要用,就要全部用utf-8编码,前台后台。如果不能,就尝试转码,但不保证一定能转出来! 
      

  4.   

    apache解析url时会并不能判断一个传过来的url字符编码是什么?所以,保险起见,不要在url中文,如要用,就要特别处理,强制前台编码
      

  5.   

    可以参考这篇blog来处理ajax的编码问题AJAX中文乱码PHP完美解决
    PS:我当时也遇到类似的问题,参考着就解决了,不能完全套用
      

  6.   

    那是因为GB2312里只收录了6763个汉字,不在他收录范围里的汉字自然是没办法显示的 
    echo iconv('UTF-8','GBK','$_REQUEST[t]'); 
    换成gbk字符,支持字数更多,而且向下与gb2312兼容!!!!!!!!!!!!!!!!!!!!!!!!