ajax參數中有加號,淺談在js傳遞參數中含加號(+)的處理方式

一般情況下,URL 中的參數應使用 url 編碼規則,即把參數字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,空格則編碼為加號(+)。

但是對于帶有中文的參數來說,這種編碼會使編碼后的字符串變得很長。

如果希望有短一點的方式對參數編碼,可以采用 base64 編碼方式對字符串進行編碼,但是 base64 編碼方式不能處理 JavaScript 中的中文,因為 JavaScript 中的中文都是以 UTF-16 方式保存的。

而 base64 只能處理單字節字符,所以不能直接用 base64 對帶有中文的 JavaScript 字符串進行編碼。

但是可以通過 utf.js 這個程序中提供的 utf16to8 來將 UTF-16 編碼的中文先轉化為 UTF-8 方式,然后再進行 base64 編碼。

這樣編碼后的字符串,在傳遞到服務器端后可以直接通過 base64_decode 解碼成 UTF-8 的中文字符串。

但是還有個問題需要注意。

base64 編碼中使用了加號(+),而 + 在 URL 傳遞時會被當成空格,因此必須要將 base64 編碼后的字符串中的加號替換成 %2B 才能當作 URL 參數進行傳遞。

否則在服務器端解碼后就會出錯。

所以我們需要做的就是encodeURI(str).replace(/\+/g,'%2B')

以上就是小編為大家帶來的淺談在js傳遞參數中含加號(+)的處理方式全部內容了,希望大家多多支持腳本之家~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537646.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基本權限總結

rwx r 針對目錄 能夠看到目錄下的內容,也就是說能夠使用ls 查看目錄下的內容針對文件 能夠看文件內的內容,也就是說能夠使用cat 查看文件內的內容 w 針對目錄 如果目錄有w權限,就可以刪除目錄下的內容針對文件 如果文件有w權限,就…

電腦用電量_閑置電腦也能賺錢?「BOINC算力地球」借區塊鏈技術擴大共享算力...

閻研希望在未來三到五年內,將BOINC平臺的算力規模擴大到目前的四倍,這相當于目前阿里云兩個大型機房的算力規模。你可曾想過,未來有一天你可以利用自己閑置的電腦來賺錢,同時還能為科研項目作出貢獻,甚至突破太空&…

加了密的PDF如何破解復制?

概述 PDF被加密了,可以查看,可以打印,但是復制不了內容。 不知道密碼,如何不花錢破解它? 方法 工具:谷歌瀏覽器,或谷歌內核的360、qq等瀏覽器 1.打開谷歌瀏覽器 2.將pdf文件拖進瀏覽器&…

nat - 虛擬服務器設置,nat 虛擬服務器設置

nat 虛擬服務器設置 內容精選換一換虛擬IP地址用于為網卡提供第二個IP地址,同時支持與多個云服務器的網卡綁定,從而實現多個云服務器之間的高可用性。登錄管理控制臺。單擊管理控制臺左上角的,選擇區域和項目。選擇“計算 > 云耀云服務器”…

新款蘋果電腦_蘋果真牛!iPhone的軟件,蘋果電腦上也照樣可用了

在剛剛過去的雙11大戰中,幾大手機廠商,打得是不可開交。為了這次年度狂歡,不僅蘋果準備了iPhone12,余承東推出了華為Mate40,劉作虎亮出了一加8T,小米特供了Redmi K30S至尊版,就連久久沒有動作的…

win10 設置游戲全屏

小米筆記本pro,雙顯卡,win10 用百度搜的修改注冊表的值,沒有用。 方法是: 1.桌面--右鍵--英特爾顯卡設置 2.選擇顯示器 3.縮放比例,選擇覆蓋應用程序設置,點擊應用

【算法】LeetCode算法題-Remove Duplicates from Sorted Array

這是悅樂書的第149次更新,第151篇原創 01 看題和準備 今天介紹的是LeetCode算法題中Easy級別的第8題(順位題號是26)。給定一個已經排序(由小到大)的整數數組(元素可以重復),計算其中不重復元素的個數n&…

信息系統項目管理基礎(1)

項目管理基礎 項目的概念 項目是為提供一項獨特產品、服務或成果所做的臨時性努力。 我現在csdn上寫一篇名叫《信息系統項目管理基礎》的博文,就是項目! 獨特性:這篇博文獨一無二,在csdn中找不出完全一樣的。 臨時性&#xf…

csgo客戶文件與服務器,csgo與遠程服務器

csgo與遠程服務器 內容精選換一換遠程連接Windows彈性云服務器后,不能復制、粘貼內容,右鍵單擊菜單欄,“粘貼”選項置灰。未進行本地驅動器映射。服務器rdpclip.exe進程異常。系統禁止云服務器和本地主機之間進行文件的復制粘貼功能。未進行本…

java 容器都有哪些?_適合存儲普洱茶的容器都有哪些?

收藏普洱茶的容器,首先強調的是無異味、無污染。就質地而言,收藏普洱茶的容器類型很多:土器、瓦器、木器、竹器、石器、陶器、瓷器、紫砂、玻璃、紙質等都可選擇使用,金屬、搪瓷容器密度高、透氣性差,如不解決透氣性問…

WPF,Silverlight與XAML讀書筆記第三十九 - 可視化效果之3D圖形

原文:WPF,Silverlight與XAML讀書筆記第三十九 - 可視化效果之3D圖形說明:本系列基本上是《WPF揭秘》的讀書筆記。在結構安排與文章內容上參照《WPF揭秘》的編排,對內容進行了總結并加入一些個人理解。 WPF將易用性的理念帶入了3D世界&#xf…

logisim優先編碼器怎么用_編碼器簡介、應用的stm32代碼及注釋

在機器人的旋轉關節中、或者底盤的驅動輪中,編碼器是一個很常用的部件,它用于檢測輸出軸的位置、轉速。下面我們先從它的分類開始,后面還有一個簡單的用法示例代碼。磁編碼器1.編碼器分類: 按工作原理:光電式、磁電式和…

數據庫查詢集合排序

/** 定義一個排序規則*/ public class ComparatorUser implements Comparator{Overridepublic int compare(Object arg0, Object arg1) {User user0(User)arg0;User user1(User)arg1;//首先比較年齡,如果年齡相同,則比較名字int flaguser0.getAge().comp…

立項管理

項目建議書 也叫立項申請項目建設單位發起主要內容:項目的必要性、項目市場預測、產品方案或服務的市場預測、項目建設必需的條件項目可行性研究 特點 預見性、公正性、可靠性、科學性主要內容 投資、技術、財務、組織、經濟、社會的可行性、風險因素及對策技術可行…

c++輸出方塊_【Blender】方塊波浪動畫音樂效果

先上結果:Blender方塊動畫效果https://www.zhihu.com/video/1232333427569262592老規矩:一、設置基本Wave Mesh(波浪面)創建Plane,S 8,這樣寬度就是2*816m了。CtrlA/Object菜單->Apply->Apply Scale—…

vue服務端渲染添加緩存

雖然 Vue 的服務器端渲染(SSR)相當快速,但是由于創建組件實例和虛擬 DOM 節點的開銷,無法與純基于字符串拼接(pure string-based)的模板的性能相當。在 SSR 性能至關重要的情況下,明智地利用緩存策略,可以極大改善響應時間并減少服…

Could not autowire. No beans of 'xxxx' type found的錯誤提示

spring 集成mybatis 找不到 beans 查了很多網頁,解決辦法是: 在PersonMapper 上加 Repositorypackage zengmiaogen.csdn.cn.mybatis;import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository;import java.ut…

怎么把頁面按比例縮小_做PPT多圖排版千萬別套模板了,按這28種版式來,絕對靠譜!...

編按:各種類型的PPT經常會用到圖片,這些圖片到底如何排版才更出色呢?今天給大家分享一篇PPT圖片排版手冊,主要介紹了多張圖常見的排版方式,希望能幫助到您!嗨,大家好,我是P小白。一張…

spring boot 集成Mybatis時 Invalid bound statement (not found)

spring boot 集成Mybatis時,運行提示 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): zengmiaogen.csdn.cn.mybatis.PersonMapper.queryPersonList 按照下文的步驟,解決了問題 https://blog.csdn.net/qq_3598128…

Caffe CuDNN版本與環境不同導致make錯誤

1.將./include/caffe/util/cudnn.hpp 換成最新版的caffe里的cudnn的實現,即相應的cudnn.hpp. 2.將./include/caffe/layers里的,所有以cudnn開頭的文件,例如cudnn_conv_layer.hpp,都替換成最新版的caffe里的相應的同名文件。 3.將.…