结合实例详细介绍encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()使用方法

在介绍encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()方法前我们需要了解Global对象的概念:
   Global(全局)对象可以说是ECMAScript中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的。ECMAScript中的Global对象在某种意义上是作为一个终极的“兜底儿对象”来定义的。换句话说,不属于任何其他对象的属性和方法,最终都是它的属性和方法。事实上,没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global对象的属性。本书前面介绍过的那些函数,诸如isNaN()、isFinite()、parselnt()以及parseFloat(),实际上全都是Global对象昀方法。除此之外,Global对象还包含其他一些方法。
   URI编码方法
    Global对象的encodeURI()和encodeURIComponent()方法可以对URI (Uniform ResourceIdentifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字 符,从而让浏览器能够接受和理解。
   其中encodeURI()主要用于整个URI(例如,http://www.jxbh.cn/illegal value.htm),而encode-URIComponent()主要用于对URI中的某一段(例如前面URI中的illegal value.htm)进行编码。它们的主要区别在于,encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码。来看下面的例子:
       var uri="http://www.jxbh.cn/illegal value.htm#start";
      //”http: //www.jxbh.cn/illegal%20value .htm#s tart”
      alert(encodeURI (uri)):
      //”http% 3A%2F%2Fwww.jxbh.cn%2 Fillegal%2 0value. htm%23 start”
      alert( encodaURIComponent (uri));
   使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。这也正是可以对整个URI使用encodeURI(),而只能对附加在现有URI后面的字符串使用encodeURIComponent()的原因所在。一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URL进行编码.
   与encodeURI()和encodeURIComponent()方法对应的两个方法分别是decodeURI()和decodeURIComponent()。其中,decodeURI()只能对使用encodeURI()替换的字符进行解码。例如, 它可将%20替换成一个空格,但不会对%23作任何处理,因为%23表示井字号(#),而井字号不是使用encodeUR工()替换的。同样地,decodeURIComponent()能够解码使用encodeURIComponent()编码的所有字符,即它可以解码任何特殊字符的编码。来看下面的例子:
      var uri=”http%3A%2F%2Fwww.jxbh.cn%2Fillegal%2 0value.htm%23 start”;
      //http% 3A%2F%2Fwww. jxbh.cn%2 Fillegal value .htm%23 start 
      alert( decodeURI(uri));
      //http: //www.jxbh.cn/illegal value .htm# start
       alert( decodeURIComponent (uri));
   这里,变量uri包含着一个由encodeURIComponent()编码的字符串。在第一次调用decodeURI()
输出的结果中,只有%20被替换成了空格。而在第二次调用decodeURIComponent()输出的结果中,所有特殊字符的编码都被替换成了原来的字符,得到了一个未经转义的字符串(但这个字:一个有效的URI)。
    南昌网站建设公司百恒网络工程师提示,URI方法encodeURI()、encodeURIComponent()、decodeURI()和decodeURIComponent()用于替代已经被ECMA-262第3版废弃的escape()和unescape()方法,URI方法能够编码所有Unicode字符,而原来的方法只能正确地编码ASCII字符.因为在开发实践中,特别是在产品级的代码中,一定要使用URI方法.不要使用escape()和unescape()方法.

时间: 2024-10-22 08:15:21

结合实例详细介绍encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()使用方法的相关文章

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,

详细介绍jQuery淡入淡出元素的方法

转载请注明出处:http://www.uphtm.com/js/147.html 为了达到更为生动的效果,可以把一个元素淡出或淡入,在任何一种情况下,都只是随着时间来改变元素的透明度.jQuery提供了3个和淡入淡出相关的函数: ·fadeIn()使得一个隐藏的元素淡入视野.首先,元素占据的空间出现在页面上(这可能意味着页面上的其他元素要移走):然后,元素逐渐地变得可见.如果元素在页面上已经可见,则这个函数没有任何效果.如果没有提供一个速度值,元素使用“常规”设置来淡入(400毫秒). ·fad

jQuery Ajax 实例 详细介绍$.ajax、$.post、$.get的使用

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦需要处理浏览器之间的兼容问题,Jquery大大简化了我们的这些操作操作,不用在考虑浏览器这方面的问题,可以直接使用! $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType }); 二.$.aj

php 三元运算符实例详细介绍

三元运算符的功能与"if....else"流程语句一致,它在一行中书写,代码精练.执行效率高.在PHP程序中恰当地使用三元运算符能够让脚本更为简洁.高效.代码的语法如下: ? 1 (expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3 解释:如果条件"expr1"成立,则执行语句"expr2",否则执行"expr3". ? 1 2 3 4 5 6 <?PHP $a=10; $b=20; $c=

JavaScript全局函数 unescape() escape() encodeURI() decodeURI() decodeURIComponent() encodeURIComponent()

unescape() 函数可对通过 escape() 编码的字符串进行解码. 语法unescape(string)  string必需.要解码或反转义的字符串.返回值 string 被解码后的一个副本. 说明:该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码. 提示和注释注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对

javascript中encodeURI和decodeURI方法使用介绍

encodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误, 所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来 一.基本概念 encodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码, decodeURI可以用来把字符还原回来.encodeURI方法不会对下列字符进行编码:":"

linux awk 内置函数详细介绍(实例)

这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的

Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一)

拓展压缩包的使用方式详细介绍 1:将拓展包解压:ThinkPHP3.1.2_Extend.zip   --> 将其下的 \Extend  文件全部复制 2:将复制的文件放入项目中 E:\wamp\www\thinkphp\ThinkPHP\Extend(安装的时候这里面是空文件),你自己的项目目录 即可 =============================以下是,拓展包中验证码的使用======================================== 比如用到拓展包的验证码:(

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲e