浅谈在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 相关文章推荐
日期函数扩展类Ver0.1.1
Sep 07 Javascript
js获取键盘按键响应事件(兼容各浏览器)
May 16 Javascript
jQuery动态地获取系统时间实现代码
May 24 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 Javascript
javascript函数式编程基础
Sep 15 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
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
JQUERY操作JSON实例代码
2010/02/09 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
JS二分查找算法详解
2017/11/01 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现飞行棋游戏
2020/02/05 Python
python 实现图片裁剪小工具
2021/02/02 Python
青年志愿者事迹材料
2014/02/07 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
就职演讲稿范文
2014/05/19 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
企业授权委托书范本
2014/09/22 职场文书
2014年民政工作总结
2014/11/26 职场文书