encodeURIComponent的用法
实践出真知,项目中遇到坑,填满后总结:编码不一定需要解码
rsa加密字段(base64位后),通过url?filed=value传输后,总是有+等特殊字符,然后到后端时base64解不开,发现很多空格。
尝试用encodeURI发现还是有空格,最后使用encodeURIComponent解决问题
总结时发现下面的文章说的比较透彻。
https://www.cnblogs.com/season-huang/p/3439277.html
一、前言
讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。
二、escape和它们不是同一类
简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。
编码之后的效果是%XX或者%uXXXX这种形式。
其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码,其余的都会。
最关键的是,当你需要对URL编码时,请忘记这个方法,这个方法是针对字符串使用的,不适用于URL。
事实上,这个方法我还没有在实际工作中用到过,所以就不多讲了。
三、最常用的encodeURI和encodeURIComponent
四、最重要的,我该什么场合用什么方法
encodeURI("http://www.cnblogs.com/season-huang/some other thing");
"http://www.cnblogs.com/season-huang/some%20other%20thing";
其中,空格被编码成了%20。但是如果你用了encodeURIComponent,那么结果变为
"http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2Fsome%20other%20thing"
看到了区别吗,连 "/" 都被编码了,整个URL已经没法用了。
3、当你需要编码URL中的参数的时候,那么encodeURIComponent是最好方法。
var param = "http://www.cnblogs.com/season-huang/"; //param为参数 param = encodeURIComponent(param); var url = "http://www.cnblogs.com?next=" + param; console.log(url) //"http://www.cnblogs.com?next=http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2F"
转载于:https://www.cnblogs.com/davidwang456/p/8861800.html
encodeURIComponent的用法相关推荐
- JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍
JS拼接字符串的过程中将JSON对象存到某个标签的属性中 JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍 案例描述 实现方法 ...
- decodeURIComponent()函数和encodeURIComponent() 函数用法
1.encodeURIComponent()函数 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码. 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 AS ...
- 新增成功到编制为空bug_36 个JS 面试题为你助力,让面试更有力(面试必读)
来源:javapoint 译者:前端小智 点赞再看,养成习惯 本文 GitHub https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了很多我的 ...
- 新增成功到编制为空bug_36 个JS 面试题为你助力金九银10
来源:javapoint 译者:前端小智点赞再看,养成习惯 本文 GitHub https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了很多我的文 ...
- URL传递中文、Ajax传递中文,Java如何编码如何解决乱码
地址栏中出现汉字的情况有 两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参.js中 编码有escape(),en ...
- 36 个JS 面试题为你助力金九银十(面试必读)
来源:javapoint 译者:前端小智 为了保证的可读性,本文采用意译而非直译. 阿里云双12已开启,新老用户均可参与,2核1G云服务器仅需79元,,更多服务器配置及价格请关注:Hi拼团,或点此了解 ...
- 年薪60万,人才缺口1400万,这个方向你还不来?
大家好,我是孙玄,前58集团技术委员会主席,前转转首席架构师,腾讯云最具价值专家 TVP...... 最近,有很多同学跟我聊,看到数据时代未来的技术发展趋势,说想转行往大数据方向发展,问我有啥好的建议 ...
- JSP页面GET请求中文乱码
地址栏中出现汉字的情况有两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参. js中编码有escape(),enc ...
- 在html中电子邮件链接,关于电子邮件:与HTML正文的mailto链接
我在HTML文档中有几个mailto链接. 我可以在href的mailto:部分插入HTML格式的正文吗? Mail me 注意,(2016)在iOS中,添加和标签可以非常好地实现简单的斜体.粗体格式 ...
最新文章
- navicat 几个 可用的东西
- VTK:图片之ImageLaplacian
- linear-gradient与radial-gradient
- 计算机网络——IP地址与MAC地址
- JAVA入门级教学之(do...while循环)
- 厉害了!顶级学术期刊封面的“中国元素”
- Bootstrap CSS编码规范之代码组织规范
- [php] 解析JSON字符串
- 《战舰世界》携手汉堡王开启“战舰堡胃战”主题活动
- 直升机的扭力与反扭力
- Dev-C++ 一直提示源文件未编译,原因及解决办法
- 分享自己的超轻量级高性能ORM数据访问框架Deft
- EXCEL文本函数-数字小写换大写-英文大小写互换
- COMP SCI 3013 7089 - Event Driven Computing Semester java
- webassembly学习-modules
- 牛客上C++的面试题和答案
- java的图片上传详解
- kali 设置中文并安装输入法
- GMT 时间格式转换到 TDateTime (Delphi)
- 公众号学生成绩查询系统
热门文章
- mybitis第三讲:关联查询
- vue .native 方法未定义_vue最新面试题
- 程序流程图_干货收藏 | Java 程序员必备的一些流程图
- python写文件追加 按行追加_Python3 自学第14天:文件操作,文件句柄,上下文管理器...
- python圆的半径计算圆的周长列表_python计算圆周长、面积、球体体积并画出圆
- linux raid更换硬盘,linux系统raid1更换故障硬盘处理过程
- mysql支持非关系_说下oracle、mysql、非关系型数据库中的索引结构?
- android 之Fragment(轻量级的Activity)详解
- 机器学习——推荐算法
- 8种相似度度量方式的原理及实现【笔记自用】【1】