文档章节

javascript - encodeURI和encodeURIComponent的区别

huangjacky
 huangjacky
发布于 2014/10/12 12:21
字数 218
阅读 7
收藏 0

这两个函数功能上面比较接近,但是有一些区别。

  • encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
  • encodeURIComponent:不会进行编码的字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

从上面的说明中我们可以看出来encodeURIComponent编码更很一些,被编码后的字符都变成%xx这样的16进制形式。

image

从使用的角度来说:

encodeURI主要用于直接赋值给地址栏时候: 

location.href=encodeURI("http://huangjacky.com/");

而encodeURIComponent主要用于url的query参数:

location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");

大致就是这样了。

这个时候你肯定要说还有个escape函数。

关于escape我要说两点:

  1. ECMAScript 3中已经不提倡使用这个函数了,所以我们还是少用吧。
  2. escape不会编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

本文转载自:http://www.cnblogs.com/huangjacky/p/4015690.html

共有 人打赏支持
huangjacky
粉丝 5
博文 19
码字总数 0
作品 0
深圳
高级程序员
私信 提问
JS对URL字符串进行编码/解码分析

一、为什么要进行js编码和解码? 只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。 出现的情况: 网址路径中包含汉字...

qq_38055050
05/12
0
0
escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 es...

小编辑
2012/02/21
574
1
js中escape,encodeURI,encodeURIComponent三个函数的区别

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、 传递参数时需要使用encodeURIComponent,这样组合的url...

阿秀a
2010/05/18
0
0
get提交的请求中带中文参数转码问题

解决办法2种: 1、转换为js来提交,利用js的encodeURI方法转换编码。值得注意的是:须转换2次。即encodeURI(encodeURI("中文")); java服务端程序用java.net.URLDecoder.decode("中文","utf-...

OSC-原谅帽派送员
2016/04/28
263
0
js escape, encodeURI, encodeURIComponent

escape, encodeURI, encodeURIComponent 1)基本介绍 js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:decodeURI,decodeURIComponent 2)用途 1、 ...

learn_more
2014/10/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

flutter Expanded用法

使用的地方:一个分类,类似京东的,左右两边都可以滑动 Widget build(BuildContext context) { return Row(children: [ Column( children: <Widget>[ Ex......

大灰狼wow
14分钟前
2
0
Java8 Map中新增的方法使用总结

前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(key, value), computeIfPresent,......

kaixin_code
23分钟前
1
0
@TransactionConfiguration

@TransactionConfiguration过时与替代写法 @TransactionConfiguration 替代写法

miaojiangmin
25分钟前
0
0
浅谈Vue响应式(数组变异方法)

很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法。 看来想让女...

开元中国2015
27分钟前
2
0
Elasticsearch通关教程(五):如何通过SQL查询Elasticsearch

  这篇博文本来是想放在全系列的大概第五、六篇的时候再讲的,毕竟查询是在索引创建、索引文档数据生成和一些基本概念介绍完之后才需要的。当前面的一些知识概念全都讲解完之后再讲解查询是...

SEOwhywhy
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部