浅谈在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 相关文章推荐
javascript 写类方式之四
Jul 05 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
Dec 08 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
Aug 11 Javascript
Egret引擎开发指南之运行项目
Sep 03 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
Apr 01 Javascript
浅谈vue.use()方法从源码到使用
May 12 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 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实现简单爬虫的方法
2015/07/29 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
js left,right,mid函数
2008/06/10 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
详解python datetime模块
2020/08/17 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
几个判断型的面试题
2012/07/03 面试题
幼儿园门卫岗位职责
2014/02/14 职场文书
免职证明样本
2014/10/23 职场文书
借条格式范本
2015/05/25 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
Java 关于String字符串原理上的问题
2022/04/07 Java/Android