淺談在js傳遞參數(shù)中含加號(hào)(+)的處理方式
一般情況下,URL 中的參數(shù)應(yīng)使用 url 編碼規(guī)則,即把參數(shù)字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%)后跟兩位十六進(jìn)制數(shù),空格則編碼為加號(hào)(+)。
但是對(duì)于帶有中文的參數(shù)來(lái)說(shuō),這種編碼會(huì)使編碼后的字符串變得很長(zhǎng)。
如果希望有短一點(diǎn)的方式對(duì)參數(shù)編碼,可以采用 base64 編碼方式對(duì)字符串進(jìn)行編碼,但是 base64 編碼方式不能處理 JavaScript 中的中文,因?yàn)?JavaScript 中的中文都是以 UTF-16 方式保存的。
而 base64 只能處理單字節(jié)字符,所以不能直接用 base64 對(duì)帶有中文的 JavaScript 字符串進(jìn)行編碼。
但是可以通過(guò) utf.js 這個(gè)程序中提供的 utf16to8 來(lái)將 UTF-16 編碼的中文先轉(zhuǎn)化為 UTF-8 方式,然后再進(jìn)行 base64 編碼。
這樣編碼后的字符串,在傳遞到服務(wù)器端后可以直接通過(guò) base64_decode 解碼成 UTF-8 的中文字符串。
但是還有個(gè)問(wèn)題需要注意。
base64 編碼中使用了加號(hào)(+),而 + 在 URL 傳遞時(shí)會(huì)被當(dāng)成空格,因此必須要將 base64 編碼后的字符串中的加號(hào)替換成 %2B 才能當(dāng)作 URL 參數(shù)進(jìn)行傳遞。
否則在服務(wù)器端解碼后就會(huì)出錯(cuò)。
所以我們需要做的就是encodeURI(str).replace(/\+/g,'%2B')
以上就是小編為大家?guī)?lái)的淺談在js傳遞參數(shù)中含加號(hào)(+)的處理方式全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
element-ui 的el-button組件中添加自定義顏色和圖標(biāo)的實(shí)現(xiàn)方法
這篇文章主要介紹了element-ui 的el-button組件中添加自定義顏色和圖標(biāo)的實(shí)現(xiàn)方法,目前的解決方案是:添加一個(gè)自定義全局指令,同時(shí)在element-ui源碼中,加入對(duì)應(yīng)的組件。需要的朋友跟隨小編一起看看吧2018-10-10js點(diǎn)擊列表文字對(duì)應(yīng)該行顯示背景顏色的實(shí)現(xiàn)代碼
這篇文章主要介紹了js點(diǎn)擊列表文字對(duì)應(yīng)該行顯示背景顏色的實(shí)現(xiàn)代碼,感興趣的小伙伴可以參考下2015-08-08動(dòng)態(tài)加載dtree.js樹treeview(示例代碼)
本篇文章主要是對(duì)動(dòng)態(tài)加載dtree.js樹treeview的示例代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12js實(shí)現(xiàn)按Ctrl+Enter發(fā)送效果
按Ctrl+Enter發(fā)送,思路是監(jiān)聽textarea的onkeydown事件,當(dāng)ctrl鍵被按下,并且,keycode為13(回車),時(shí),調(diào)用發(fā)送表單的函數(shù)2014-09-09Bootstrap進(jìn)度條實(shí)現(xiàn)代碼解析
這篇文章主要為大家詳細(xì)介紹了Bootstrap進(jìn)度條的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03javascript簡(jiǎn)易緩動(dòng)插件(源碼打包)
最近,同事在做一個(gè)項(xiàng)目的時(shí)候,有個(gè)需求,需要一款動(dòng)畫庫(kù)來(lái)支持2012-02-02js列舉css中所有圖標(biāo)的實(shí)現(xiàn)代碼
最近在做一個(gè)通用的配置模塊。配置模塊中必然要對(duì)系統(tǒng)的菜單、功能模塊、權(quán)限資源等進(jìn)行配置,為了更好的用戶體驗(yàn),圖標(biāo)是必不可少的!2011-07-07JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表
這篇文章主要為大家詳細(xì)介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03