JS URL傳遞中文參數時出現亂碼的處理


 

   在瀏覽器中顯示的地址是這樣的:

  但是按F12調試的時候的地址卻變化掉了:

 

 

 

        這個肯定是是因為瀏覽器對url路徑默認編碼了。這個問題是在我們去取值的時候,得到的就是后面那一大串稀奇古怪的東西。得不到我們想要的值。怎么辦呢?這里寫出來的只是自己的解決方法,也許不能通用,跟大家分享下,有更好的方法,告我一聲。

     //得到url中的值
function request(paras){ 
    var url = location.href;  
    var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");  
    var paraObj = {}; 
    for (var i=0; j=paraString[i]; i++){  
        paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);  
    }  
    var returnValue = paraObj[paras.toLowerCase()]; 
    if(typeof(returnValue)=="undefined"){  
        return "";  
    }else{  
        return returnValue;  
    } 
} 

  function getHys(){
   if(request('hys') !=''){

 

//decodeURL 將傳遞方的中文又解碼
  var hys=decodeURI(request('hys'));
   var select =document.getElementById('nybgs');
   var selectValue="";
   for(var i=0;i<select.options.length;i++){
   selectValue=select.options[i].value;
   if(document.getElementById('nybgs').options[i].value==hys){
    document.getElementById('nybgs').selectedIndex = i;
             }
           }
       }
    }

 

request方法是取地址中的參數的方法,decodeURI()方法就是將傳遞方的中文又解碼。

在火狐和360和IE8中測試過,都沒問題,不知道大家有沒有其他更好的辦法?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM