浅谈在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 相关文章推荐
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
JS获取IMG图片高宽的简单实例
May 17 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
Nov 20 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
vue-cli3配置与跨域处理方法
Aug 17 Javascript
JavaScript 监听组合按键思路及代码实现
Jul 28 Javascript
vue实现input输入模糊查询的三种方式
Aug 14 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
牡丹941资料
2021/03/01 无线电
for循环连续求和、九九乘法表代码
2012/02/20 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python实现将xml导入至excel
2015/11/20 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python使用mysql的两种使用方式
2018/03/07 Python
python 中xpath爬虫实例详解
2019/08/26 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
小学校长个人总结
2015/03/03 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL