1. 程式人生 > >web前端頁面解決中文傳參亂碼問題

web前端頁面解決中文傳參亂碼問題

new 字符串數組 代碼 背景 項目 一次 截取 單純 獲取url

  問題背景:在項目中往往會涉及到前端跳轉頁面時要傳一些參數給下一個頁面,如果參數是英文或者數字的時候就很好解決,然而有時候傳參會涉及到中文漢字,這個時候再單純的拼接往往就會導致中文亂碼,下面我們就該討論一下如何解決中文傳參亂碼的問題。

  假設A頁面跳轉到B頁面並且A向B傳參,首先在A頁面中要調用這個方法:encodeURI("這裏是中文參數");

  完整的拼接效果為:  

  window.location.href="B.html?&title="+encodeURI("這裏是中文參數");

  至此頁面中文傳參已經完成,下一步就是如何把參數給翻譯成中文,那麽再跳到B頁面進行處理。

  解碼代碼也只是一句:decodeURI("需要轉碼的鏈接");

  而要獲取參數,則需要分析鏈接並做正則匹配進行截取,全部代碼如下:  

  //截取鏈接傳過來的參數
  var url=window.location.href; //獲取當前頁面的url
  url = decodeURI(url);//轉碼
  var len=url.length; //獲取url的長度值
  var a=url.indexOf("?"); //獲取第一次出現?的位置下標
  var b=url.substr(a+1,len); //截取問號之後的內容
  var c=b.split("&"); //從指定的地方將字符串分割成字符串數組
  var arr=new Array(); //新建一個數組
  for(var i=0;i<c.length;i++){
    var d=c[i].split("=")[1]; //從=處將字符串分割成字符串數組,並選擇第2個元素
    arr.push(d); //將獲取的元素存入到數組中
  }

至此,前端頁面間的傳中文參數亂碼的問題就得到解決了。

web前端頁面解決中文傳參亂碼問題