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