浅谈在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 相关文章推荐
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
小议javascript 设计模式 推荐
Oct 28 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
Dec 09 Javascript
jquery中$each()方法的使用指南
Apr 30 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
JavaScript数据结构之二叉树的计数算法示例
Apr 13 Javascript
详解webpack和webpack-simple中如何引入css文件
Jun 28 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
vue基于Teleport实现Modal组件
May 31 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
python生成日历实例解析
2014/08/21 Python
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
django之session与分页(实例讲解)
2017/11/13 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
python 导入数据及作图的实现
2019/12/03 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
会议邀请函范文
2014/01/09 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
推广活动策划方案
2014/08/23 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
Oracle笔记
2021/04/05 Oracle
git中cherry-pick命令的使用教程
2022/06/25 Servers