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

淺談在js傳遞參數(shù)中含加號(hào)(+)的處理方式

 更新時(shí)間:2016年10月11日 12:47:21   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談在js傳遞參數(shù)中含加號(hào)(+)的處理方式。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

一般情況下,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)文章

最新評(píng)論