淺談在js傳遞參數(shù)中含加號(+)的處理方式
一般情況下,URL 中的參數(shù)應使用 url 編碼規(guī)則,即把參數(shù)字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進制數(shù),空格則編碼為加號(+)。
但是對于帶有中文的參數(shù)來說,這種編碼會使編碼后的字符串變得很長。
如果希望有短一點的方式對參數(shù)編碼,可以采用 base64 編碼方式對字符串進行編碼,但是 base64 編碼方式不能處理 JavaScript 中的中文,因為 JavaScript 中的中文都是以 UTF-16 方式保存的。
而 base64 只能處理單字節(jié)字符,所以不能直接用 base64 對帶有中文的 JavaScript 字符串進行編碼。
但是可以通過 utf.js 這個程序中提供的 utf16to8 來將 UTF-16 編碼的中文先轉化為 UTF-8 方式,然后再進行 base64 編碼。
這樣編碼后的字符串,在傳遞到服務器端后可以直接通過 base64_decode 解碼成 UTF-8 的中文字符串。
但是還有個問題需要注意。
base64 編碼中使用了加號(+),而 + 在 URL 傳遞時會被當成空格,因此必須要將 base64 編碼后的字符串中的加號替換成 %2B 才能當作 URL 參數(shù)進行傳遞。
否則在服務器端解碼后就會出錯。
所以我們需要做的就是encodeURI(str).replace(/\+/g,'%2B')
以上就是小編為大家?guī)淼臏\談在js傳遞參數(shù)中含加號(+)的處理方式全部內容了,希望大家多多支持腳本之家~
相關文章
element-ui 的el-button組件中添加自定義顏色和圖標的實現(xiàn)方法
這篇文章主要介紹了element-ui 的el-button組件中添加自定義顏色和圖標的實現(xiàn)方法,目前的解決方案是:添加一個自定義全局指令,同時在element-ui源碼中,加入對應的組件。需要的朋友跟隨小編一起看看吧2018-10-10動態(tài)加載dtree.js樹treeview(示例代碼)
本篇文章主要是對動態(tài)加載dtree.js樹treeview的示例代碼進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12