浅谈在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入门教程(11) js事件处理
Jan 31 Javascript
使用jQuery模板来展现json数据的代码
Oct 22 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
Nginx上传文件全部缓存解决方案
Aug 17 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
vue里的data要用return返回的原因浅析
May 28 Javascript
回顾Javascript React基础
Jun 15 Javascript
详解Angular cli配置过程记录
Nov 07 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语法速查表
2007/01/02 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
微信小程序wx.request的简单封装
2019/11/13 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
python如何求100以内的素数
2020/05/27 Python
Python 解析简单的XML数据
2020/07/24 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
六五普法规划实施方案
2014/03/21 职场文书
实习生辞职信范文
2015/03/02 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技
html中两种获取标签内的值的方法
2022/06/16 jQuery
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript