网站站代码采用utf-8格式,当页面停留在搜索页面时,在浏览器的地址栏输入中文的关键字进行搜索时会出现乱码,在网上查找资料说明,是因为浏览器默认将url中的中文字符编码为gb2312格式,而我的程序中的文件编码是使用的utf-8的格式,所以才会出现这个问题,但是如果是直接使用表单提交的数据就不会出现这种问题。解决办法如下,需要PHP开启mb_string支持。
$encode = mb_detect_encoding($keywords, array("ASCII","UTF-8","GBK","GB2312","BIG5")); if(!is_utf8($keywords)){ $keywords = iconv($encode,"UTF-8",$keywords); } // 或者 if (!mb_check_encoding($keywords, 'utf-8')){ $keywords = urldecode($keywords); }