浅谈在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 动态扩展对象之另类视角
May 25 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
May 25 Javascript
node.js中的fs.fstat方法使用说明
Dec 15 Javascript
基于AngularJS+HTML+Groovy实现登录功能
Feb 17 Javascript
深入理解js中this的用法
May 28 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
使用Vue自定义指令实现Select组件
May 24 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
在Vue中使用antv的示例代码
Jun 29 Javascript
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
JS日历 推荐
2006/12/03 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
python使用scrapy解析js示例
2014/01/23 Python
Python smallseg分词用法实例分析
2015/05/28 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python导入坐标点的具体操作
2019/05/10 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
机电一体化专业应届本科生求职信
2013/09/27 职场文书
房产转让协议书
2014/04/11 职场文书
社会公德演讲稿
2014/05/20 职场文书
设备收款委托书范本
2014/10/02 职场文书
社团招新宣传语
2015/07/13 职场文书