浅谈在js传递参数中含加号(+)的处理方式


Posted in Javascript onOctober 11, 2016

一般情况下,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传递参数中含加号(+)的处理方式全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
浅谈jQuery中replace()方法
May 13 Javascript
JavaScript中pop()方法的使用教程
Jun 09 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
js 动态生成html 触发事件传参字符转义的实例
Feb 14 Javascript
Angular 4 指令快速入门教程
Jun 07 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
微信小程序云开发使用方法新手初体验
May 16 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
微信小程序实现电子签名并导出图片
May 27 Javascript
JS验证图片格式和大小并预览的简单实例
Oct 11 #Javascript
js判断文件格式及大小的简单实例(必看)
Oct 11 #Javascript
js 判断附件后缀的简单实现方法
Oct 11 #Javascript
判断数组的最佳方法(推荐)
Oct 11 #Javascript
JavaScript中cookie工具函数封装的示例代码
Oct 11 #Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 #Javascript
Bootstrap轮播插件使用代码
Oct 11 #Javascript
You might like
简单实用的.net DataTable导出Execl
2013/10/28 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP正则验证Email的方法
2015/06/15 PHP
PHP框架性能测试报告
2016/05/08 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
django初始化数据库的实例
2018/05/27 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python statsmodel的使用
2020/12/21 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
银行反洗钱宣传活动总结
2015/05/08 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js