位置:首页 » 实例在线教程 » PHP解决站内搜索时URL地址栏输入中文字符搜索出现乱码

网站站代码采用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);  
}