位置:首頁 » 實例教學 » 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);  
}