您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)php中echo get參數(shù)亂碼的解決方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
php echo get參數(shù)亂碼的解決辦法:1、使用“iconv("gb2312","utf-8",$str);”轉(zhuǎn)換編碼;2、通過(guò)mb_convert_encoding函數(shù)轉(zhuǎn)換編碼即可。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.4版、DELL G3電腦
PHP接收GET中文參數(shù)亂碼的原因及解決方案
前幾天我用sphinx寫(xiě)一個(gè)搜索功能,用瀏覽器測(cè)試搜索效果,可怎么也無(wú)法搜索到中文內(nèi)容。我用echo把$_GET到的關(guān)鍵字輸出一看,在UTF-8的頁(yè)面編碼下顯示的是亂碼,切換到gb2312時(shí)為正常??墒莝phinx只支持UTF-8的中文字符搜索,所以我不得不解決接收到的中文參數(shù)的問(wèn)題。
在網(wǎng)上google了下,找到一篇名為《PHP接收GET中文參數(shù)亂碼深入研究》的文章,文章中提到這是由于瀏覽器的設(shè)置問(wèn)題,如果直接上地址欄輸入中文參數(shù),在中文界面的瀏覽器中一般是以gbk的編碼接收參數(shù)的。像這些情況,我們就需要使用php內(nèi)置的轉(zhuǎn)碼函數(shù)來(lái)處理編碼問(wèn)題了:
方案1:
$str = iconv("gb2312","utf-8",$str);
方案2:
mb_convert_encoding($str, "utf-8", "gb2312");
如果是在utf-8的頁(yè)面編碼下用文本輸入框得到的中文參數(shù),則頁(yè)面會(huì)為其編碼默認(rèn)為當(dāng)前編碼,所以在這種情況下不需要用以上的轉(zhuǎn)碼方式。
如果要在頁(yè)面中生成帶中文參數(shù)值的鏈接,那需在utf-8編碼的代碼下將中文字符用urlencode()編碼后再生成鏈接即可。
感謝各位的閱讀!關(guān)于“php中echo get參數(shù)亂碼的解決方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。