欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js解決url傳遞中文參數(shù)亂碼問題的方法詳解

 更新時間:2023年05月08日 15:09:12   作者:不愛吃糖的程序媛  
前后臺用js傳參過程中,如果是中文就容易出現(xiàn)亂碼,下面這篇文章主要給大家介紹了關(guān)于js解決url傳遞中文參數(shù)亂碼問題的的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

場景復(fù)現(xiàn):

做后臺管理系統(tǒng)的時候,出現(xiàn)了一個bug:點(diǎn)擊“導(dǎo)出數(shù)據(jù)”按鈕,打開文件里面是空的。

亂碼的url

正確的url

bug解決思路:

1.文件為空,應(yīng)該是請求的url路徑不對,顯示一個空的模板即沒帶參數(shù),因此可以判斷是參數(shù)有誤;

2.控制臺打出url,可以看出是參數(shù)中文亂碼;

3.怎樣解決中文亂碼問題?(大坑就在這里)

當(dāng)時我嘗試了encodeURI 和 decodeURI,以及encodeURIComponent 和 decodeURIComponent方法都沒用(一般情況下都是有效果的),后來就是在導(dǎo)出數(shù)據(jù)接口那里打印{key}、{form[key]}分別是啥,然后得出undefined,后來我嘗試加了一個value,沒想到就可以了。

思路糾錯:

我之前一直在對比這個頁面的導(dǎo)出接口,和其他頁面的導(dǎo)出接口是否寫的一樣?結(jié)果是一樣的,而沒有去思考它這里具體的值要的是什么,因此挺花費(fèi)時間的。

url傳參中文亂碼的解決方法

1、escape 和 unescape

escape()不能直接用于URL編碼,它的真正作用是返回一個字符的Unicode編碼值。

采用unicode字符集對指定的字符串除0-255以外進(jìn)行編碼。所有的空格符、標(biāo)點(diǎn)符號、特殊字符以及更多有聯(lián)系非ASCII字符都將被轉(zhuǎn)化成%xx格式的字符編碼(xx等于該字符在字符集表里面的編碼的16進(jìn)制數(shù)字)。比如,空格符對應(yīng)的編碼是%20。
escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z。

escape()函數(shù)用于js對字符串進(jìn)行編碼,不常用。

//跳轉(zhuǎn)頁
location.href = './test.html?'+escape('name=張三&age=18')
//接收頁
var str = unescape(location.search.substr(1));
//url顯示
'test.html?name%3D%u5F20%u4E09%26age%3D18'

2、encodeURI 和 decodeURI

把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape各式的字符串。

encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURI()用于整個url編碼。

//跳轉(zhuǎn)頁
location.href = encodeURI('./test.html?name=張三&age=18');
//接收頁
var str = decodeURI(location.search.substr(1));
//url顯示
'test.html?name=張三&age=18'

3、encodeURIComponent 和 decodeURIComponent

與encodeURI()的不同的是,“; / ? : @ & = + $ , #”,這些在encodeURI()中不被編碼的符號,在encodeURIComponent()中統(tǒng)統(tǒng)會被編碼。至于具體的編碼方法,兩者是一樣。把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。

//跳轉(zhuǎn)頁
location.href = './test.html?'+encodeURIComponent('name=張三&age=18');
//接收頁
var str = decodeURIComponent(location.search.substr(1));
//url顯示
'test.html?name%3D張三%26age%3D18'

總結(jié)

到此這篇關(guān)于js解決url傳遞中文參數(shù)亂碼問題的方法的文章就介紹到這了,更多相關(guān)js url傳遞中文參數(shù)亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論