浅谈在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 相关文章推荐
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
javascript获取url上某个参数的方法
Nov 08 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
AngularJS自定义服务与fliter的混合使用
Nov 24 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
原生js+canvas实现贪吃蛇效果
Aug 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
php错误日志简单配置方法
2016/07/11 PHP
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
Vue实现验证码功能
2019/12/03 Javascript
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python学生管理系统学习笔记
2019/03/19 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
python调用支付宝支付接口流程
2019/08/15 Python
详解Python3 pandas.merge用法
2019/09/05 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
银行介绍信范文
2014/01/10 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
农村党支部承诺书
2015/04/30 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
Python中常见的导入方式总结
2021/05/06 Python
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
python 单机五子棋对战游戏
2022/04/28 Python