浅谈在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 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
May 10 Javascript
网站接入QQ登录的两种方法
Jul 22 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
Dec 13 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
微信小程序实现带放大效果的轮播图
May 26 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 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定时计划任务的实现方法详解
2013/06/06 PHP
十大使用PHP框架的理由
2015/09/26 PHP
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
vue监听键盘事件的相关总结
2021/01/29 Vue.js
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
简单实现python聊天程序
2018/04/01 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
网络程序员自荐信
2014/01/25 职场文书
药品业务员岗位职责
2014/04/17 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
企业介绍信范文
2015/01/30 职场文书
Python中的嵌套循环详情
2022/03/23 Python
如何利用python创作字符画
2022/06/25 Python