浅谈在js传递参数中含加号(+)的处理方式
作者:jingxian 发布时间:2024-05-13 09:18:56
标签:js,传递,参数,加号
一般情况下,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')


猜你喜欢
- 简介模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级
- :is 动态组件使用 v-bind:is=”组件名”,会自动去找匹配的组件名,如果没有,则不显示;<div id="app&
- 1.首先肯定是要安装Node.JSwindows cmd依次输入如下命令:cd C:\Program Files\nodejs\npm in
- 本文实例总结了常用SQL语句优化技巧。分享给大家供大家参考,具体如下:除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发
- HTML 标签 textarea 在大部分浏览器中只要指定行(rows)和列(cols)属性,就可以规定 textarea的尺寸,大小就不会
- 工厂方法(Factory Method)模式又称为虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphi
- 在数据分析中有时候需要自己定义分组规则 这里简单介绍一下用一个字典实现分组people=DataFrame( np.random
- 一、python3对文本和二进制数据做了区分。文本是Unicode编码,str类型,用于显示。二进制类型是bytes类型,用于存
- 一、设置画布turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置turtle.screensize(canvwidth=600
- 做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而
- 本文实例讲述了python使用sorted函数对列表进行排序的方法。分享给大家供大家参考。具体如下:python提供了sorted函数用于对
- 如下所示:#encoding=utf-8print '中国'#字典的一键多值print'方案一 list作为dict
- vue-i18n在单文件js中使用示例import Vue from 'vue'import VueI18n from
- 最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法。想要更好的了解global关键字,首先要熟悉pytho
- 问题描述先说明一下问题的由来:Django的模型中经常会用ForeignKey来关联其他表格数据class MeasureTask(mode
- git和svn有什么区别呢?git采用分布式版本库管理,而svn采用集中式版本库管理。集中式版本库管理需要有一台存放版本库的服务器,开发人员
- 前言数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听
- 容器与可迭代对象在正式开始前先补充一些基本概念在 Python 中存在容器 与 可迭代对象容器:用来存储多个元素的数据结构,例如 列表,元组
- 数字转成字符串方法一:使用格式化字符串:tt=322tem='%d' %tttem即为tt转换成的字符串常用的格式化字符串:
- 今天接到一个小需求,就是想在windows环境下,上传压缩文件到linux指定的目录位置并且解压出来,然后我想了一下,这个可以用python