1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      php獲取get參數(shù)亂碼的解決方法-創(chuàng)新互聯(lián)

      本文將為大家詳細介紹“php獲取get參數(shù)亂碼的解決方法”,內(nèi)容步驟清晰詳細,細節(jié)處理妥當(dāng),而小編每天都會更新不同的知識點,希望這篇“php獲取get參數(shù)亂碼的解決方法”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

      成都創(chuàng)新互聯(lián)是專業(yè)的贛榆網(wǎng)站建設(shè)公司,贛榆接單;提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行贛榆網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

      php有什么用

      php是一個嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。

      php獲取get參數(shù)亂碼的解決辦法:1、通過“$str=iconv("gb2312","utf-8",$str);”方式處理編碼;2、通過“mb_convert_encoding($str,"utf-8", "gb2312");”方式處理。

      PHP接收GET中文參數(shù)亂碼深入研究

      相信很多PHPer都會遇到這樣的問題:在utf-8的頁面下面,如果直接訪問帶有中文參數(shù)的地址如test.php?s=測試這樣的地址輸出參數(shù)的值會亂碼,在搜索引擎上查詢了下相關(guān)資料,都只給出了一些解決方案,但是卻沒有人研究導(dǎo)致這個問題的原因,今天特寫此文來深入這個問題產(chǎn)生的原因:

      首先我們演示這個問題,測試代碼和運行結(jié)果如下。

      代碼:

      php獲取get參數(shù)亂碼的解決方法

      測試結(jié)果:

      php獲取get參數(shù)亂碼的解決方法

      代碼中聲明了響應(yīng)內(nèi)容的編碼為utf-8,顯示的內(nèi)容確實亂碼。

      在這里請注意var_dump出變量的長度只有4,很顯然,兩個中文字的長度在utf-8編碼下肯定不止4個字節(jié)

      然后我們再看一下Firefox的訪問這個頁面url

      php獲取get參數(shù)亂碼的解決方法

      FireFox會自動將中文url編碼,所以我們可以看到測試變成了%B2%E2%CA%D4,很明顯,這里一個字是兩個字節(jié),是gb2313、gbk等中文編碼格式,而不是utf-8編碼。()

      如果我們把頁面的編碼切換為gbk,中文參數(shù)就會顯示正常,參見下圖

      php獲取get參數(shù)亂碼的解決方法

      這時一個有趣的問題就誕生了:像emlog的中文標(biāo)簽這樣的參數(shù)怎么就沒有亂碼呢?

      多方測試后,我發(fā)現(xiàn)了一個小小的區(qū)別:

      emlog中文參數(shù)的鏈接是在頁面上生成的,而上面我們測試則用手直接在地址欄輸入的,

      如果我們直接輸入例如http://be-evil.org/?tag=原創(chuàng)這樣的鏈接,程序同樣會提示找不到標(biāo)簽

      測試代碼如下:

      php獲取get參數(shù)亂碼的解決方法

      測試結(jié)果,正常顯示:


      php獲取get參數(shù)亂碼的解決方法

      請注意上圖中紅框標(biāo)出的url編碼,這次測試兩個字是由6個字節(jié)組成,而不是先前的2個字節(jié),因此表明中文參數(shù)已經(jīng)正確的成為utf-8編碼。

      那么,是什么導(dǎo)致這個問題的發(fā)生呢?

      答案是瀏覽器默認編碼  在作怪,我們都用的是中文系統(tǒng),瀏覽器默認的編碼自然也會設(shè)置為本地化,例如我自己電腦上的IE的FireFox的默認編碼都是gb系列的,請參看下圖:

      IE的默認設(shè)置:


      php獲取get參數(shù)亂碼的解決方法

      Firefox的默認設(shè)置:


      php獲取get參數(shù)亂碼的解決方法

      正因為這個設(shè)置,讓瀏覽器在請求用戶輸入的url時會默認把url中的中文以默認的編碼格式發(fā)送而不是以頁面的編碼格式發(fā)送,這就是為什么頁面中帶有中文的鏈接正常而我們手動輸入的鏈接會亂碼的原因。同理,如果我們把瀏覽器的默認編碼調(diào)整為utf-8,那么輸入url中的中文則會按照utf-8編碼。

      除了上面的之外,還有以下情況會出現(xiàn)這種情況:

      如果gbk編碼的頁面生成的地址鏈接到utf-8的頁面,gbk頁面的中文是按照gbk的格式編碼傳送給下個頁面,那么utf-8編碼接收后肯定會出現(xiàn)亂碼。

      IIS的url重寫模塊,重寫后的中文編碼也是gbk,如果你的頁面是utf-8編碼,那么重寫參數(shù)將會失效。

      像這些情況,我們就需要使用php內(nèi)置的轉(zhuǎn)碼函數(shù)來處理編碼問題了:

      方案1:

      $str =iconv("gb2312","utf-8",$str);

      方案2:

      mb_convert_encoding($str,"utf-8", "gb2312");

      如果你能讀到這里,小編希望你對“php獲取get參數(shù)亂碼的解決方法”這一關(guān)鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      文章題目:php獲取get參數(shù)亂碼的解決方法-創(chuàng)新互聯(lián)
      URL地址:http://www.ef60e0e.cn/article/hhjje.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        海阳市| 台江县| 日土县| 临颍县| 平度市| 丹阳市| 梨树县| 北碚区| 永济市| 宾川县| 辽宁省| 淮安市| 会东县| 峨眉山市| 渝中区| 阳春市| 清水河县| 广德县| 集贤县| 墨玉县| 壤塘县| 大足县| 香格里拉县| 遵义县| 澄城县| 铜川市| 正宁县| 德惠市| 淮南市| 洞头县| 苍梧县| 郧西县| 澜沧| 衡阳市| 阿坝| 嘉禾县| 贵州省| 关岭| 兴业县| 海南省| 宁河县|