但是測試了半天沒有一點反應,然後我使用:
$encode = mb_detect_encoding($_request['name'], array('utf-8',"ascii","gb2312","gbk",'big5'));
判斷獲取的字串的型別,沒想到返回『utf-8』,這時我已經很鬱悶快要放棄了,後來我仔細研究了一下這個亂碼,發現它是
"%e5%bc%a0%e9%9b%b7"18位的,我的中文是兩位,在utf8編碼下應該佔6個位元組,所以我有有了疑問,後來我又想到url編碼urlencode與urldecode兩個函式的使用,想到就行動,一經測試果然是這個url編碼的問題。如果包含中文,其實會自動編碼的,比如chrome和火狐,而這兩個瀏覽器也是開發者最常用到的所以他會自動編碼。下來講解一下原因吧:在網際網路上傳送url,只能採用ascii字元:也就是說url只能使用英文本母、阿拉伯數字和某些標點符號,不能使用其他文字和符號,即
只有字母和數字 [0-9a-za-z] 、一些特殊符號 $-_.+!*'() [不包括雙引號]、以及某些保留字(空格轉換為 +),才可以不經過編碼直接用於url;
這意味著 如果url中有漢字,就必須編碼後使用。 但是麻煩的是 標準的國際組織並沒有規定具體的編碼方法,而是交給應用程式(瀏覽器)自己決定。 這導致"url編碼"成為了乙個混亂的領域。
希望這篇文章能幫到和我一樣遇到這樣問題的朋友!
jquery 獲取url鏈結引數 中文亂碼問題
encodeuri 函式可把字串作為 uri 進行編碼。decodeuri 函式可對 encodeuri 函式編碼過的 uri 進行解碼 頁面一 傳遞ur var vensdata 111 var vensname 你好世界 var venssions 10.10.10.10 searchurl e...
PHP 解決PHP和MySQL的中文亂碼問題
php連線資料庫的時候經常會出現中文亂碼,一般只需要檢查編碼是否統一就可以解決亂碼問題。1.資料庫的字元編碼 可以將將所有編碼設定為utf 8。這樣在資料庫中就能正常顯示中文了,phpadmin預設的就是utf 8編碼。2.頁面檔案的字元編碼 在編輯器中右擊,選擇編碼方式也為utf8即可。3.php...
webView loadData 中文亂碼問題
使用 loaddata方法是中文部分會出現亂碼,即使指定 utf 8 gbk gb2312 也一樣。webview.getsettings setdefaulttextencodingname utf 8 設定預設為utf 8 text html utf 8 api提供的標準用法,無法解決亂碼問題 ...