php echo get參數亂碼的解決方法:1、使用「iconv("gb2312","utf-8",$str);」轉換編碼;2、透過mb_convert_encoding函數轉換編碼即可。
本文操作環境:windows7系統、PHP7.4版、DELL G3電腦
php echo get參數 亂碼怎麼辦?
PHP接收GET中文參數亂碼的原因及解決方案
前幾天我用sphinx寫一個搜尋功能,用瀏覽器測試搜尋效果,可怎麼也無法搜尋到中文內容。我用echo把$_GET到的關鍵字輸出一看,在UTF-8的頁面編碼下顯示的是亂碼,切換到gb2312時為正常。可是sphinx只支援UTF-8的中文字元搜索,所以我必須解決接收到的中文參數的問題。
在網路上google了下,找到一篇名為《PHP接收GET中文參數亂碼深入研究》的文章,文章中提到這是由於瀏覽器的設定問題,如果直接上網址列輸入中文參數,在中文介面的瀏覽器中一般是以gbk的編碼接收參數的。像是這些情況,我們就需要使用php內建的轉碼函數來處理編碼問題了:
方案1:
$str = iconv("gb2312","utf-8",$str);
方案2:
mb_convert_encoding($str, "utf-8", "gb2312");
如果是在utf -8的頁面編碼下用文字輸入框得到的中文參數,則頁面會為其編碼預設為當前編碼,所以在這種情況下不需要用以上的轉碼方式。
如果要在頁面中產生帶有中文參數值的鏈接,那需在utf-8編碼的代碼下將中文字符用urlencode()編碼後再生成鏈接即可。
推薦學習:《PHP影片教學》
以上是php echo get參數 亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!