首頁 >後端開發 >PHP問題 >php echo get參數 亂碼怎麼辦

php echo get參數 亂碼怎麼辦

藏色散人
藏色散人原創
2021-12-01 09:15:071916瀏覽

php echo get參數亂碼的解決方法:1、使用「iconv("gb2312","utf-8",$str);」轉換編碼;2、透過mb_convert_encoding函數轉換編碼即可。

php echo get參數 亂碼怎麼辦

本文操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn