javascript中encodeURI和decodeURI方法使用介绍

一、基本概念
encodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来。encodeURI方法不会对下列字符进行编码:":"、"/"、";" 和 "?",encodeURIComponent方法可以对这些字符进行编码。
decodeURI()方法相当于java.net.URLDecoder.decode(URIString, "UTF-8");
encodeURI()方法相当于java.net.URLEncoder.encode(URIString, "UTF-8");

二、例子


代码如下:

<script type="text/javascript">
var uriStr = "http://www.baidu.com?name=张三&num=001 zs";
var uriec = encodeURI(uriStr);
document.write("编码后的" + uriec);
var uridc = decodeURI(uriec);
document.write("解码后的" + uridc);
</script>

编码后的http://www.baidu.com?name=%E5%BC%A0%E4%B8%89&num=001%20zs
解码后的http://www.baidu.com?name=张三&num=001 zs

(0)

相关推荐

  • Javascript 获取链接(url)参数的方法[正则与截取字符串]

    当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子. 分解链接的方式: 复制代码 代码如下: <script type="text/javascript"> <!-- // 说明:Javascript 获取链接(url)参数的方法 function getQueryString(name) { // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空 if(location.href.indexOf("?")==-1 || l

  • javascript 字符 Escape,encodeURI,encodeURIComponent

    escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字).比如,空格符对应的编码是%20. 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串. 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIC

  • javascript encodeURI和encodeURIComponent的比较

    背景 encodeURI 和 encodeURIComponent都是ECMA-262标准中定义的函数,所有兼容这个标准的语言(如JavaScript, ActionScript)都会实现这两个函数.它们都是用来对URI (RFC-2396)字符串进行编码的全局函数,但是它们的处理方式和使用场景有所不同.为了解释它们的不同,我们首先需要理解RFC-2396中对于URI中的字符分类 保留字符(reserved characters):这类字符是URI中的保留关键字符,它们用于分割URI中的各个部分

  • JavaScript使用encodeURI()和decodeURI()获取字符串值的方法

    本文实例讲述了JavaScript使用encodeURI()和decodeURI()获取字符串值的方法.分享给大家供大家参考.具体如下: JavaScript使用encodeURI()和decodeURI()获取字符串值,不能就是地址栏显示的字串,以前经常在网上见到有人问此问题,无意在网上发现,不知是不是您想要的,先看看效果吧. 先来看看运行效果: 具体代码如下: <html> <head> <meta http-equiv="Content-Type"

  • javascript提取URL的搜索字符串中的参数(自定义函数实现)

    今天在犀牛书上发现了一个有用的函数 urlArgs(提取URL的搜索字符串中的参数).我们经常会看到有的页面链接地址后面会跟有参数,比如 http://www.xxx.com/?username=yyy&password=zzz 之类的,很多时候我们需要获得这些参数的值(yyy和zzz),那么就可以利用 urlArgs 函数,通过该函数的返回值(返回值是对象)的属性来获取. urlArgs 函数代码: 复制代码 代码如下: function urlArgs(){ var args = {}; v

  • Javascript下的urlencode编码解码方法附decodeURIComponent

    关于在ASP(Server.UrlEncode).PHP(urlencode())函数编码结果,或是经过asp.php等动态语言直接写入COOKIES的中文字符,用JS读取的时候,都会碰到一个编码的问题,那就是最终字符串被urlencode编码了,而又时有需要从JS在客户端去读取这些数据. 而本文,就大概说说如何在js中通过系统自带的函数去解决这个问题. 而相信碰到过此问题的朋友应该都有所了解,目前网络上流行一些js下的自定义函数去解决这个问题,如说vbscript(URLDecode()).j

  • javascript中encodeURI和decodeURI方法使用介绍

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

  • javascript中的document.open()方法使用介绍

    document.open()方法打开一个新的文档,并用document.write()方法编写文档的内容,然后用document.close()方法关闭文档操作,使其内容显示出来. 例如: 复制代码 代码如下: <script type="text/javascript"> window.onload=hello; function hello(){ var msg = "JavaScript真好玩!"; document.open(); docume

  • javascript中数组的concat()方法使用介绍

    复制代码 代码如下: <html> <head> <title>数组的concat()方法</title> <script> /* 数组的concat()方法: 1.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 2.返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的. 如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组. */ var arr1 = [

  • JavaScript中setter和getter方法介绍

    javascript中的setter.getter是平时接触比较少的方法,其本身也并不是标准方法,只在非ie浏览器里支持(ie内核也许有其他方法可以做到呢?暂时不知其解),但是加以利用可以做许多事情,比如: 1.对数据的访问限制: a.value是对value变量的getter方法调用,如果在getter方法实现中抛出异常,可以阻止对value变量的访问 2.对dom变量进行监听: window.name是一个跨域非常好用的dom属性(大名鼎鼎,详见百度),如果覆盖window.name的set

  • JavaScript中递归实现的方法及其区别

    递归函数:递归函数是在通过名字调用自身的情况下构成的. 递归实现阶乘函数: 方法一:通过使用函数的名字 function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); } } console.log(factorial(4)); 结果为:24: 但是这种方法实现递归有一个问题,观察以下代码: function factorial(num){ if(num<=1){ return 1; }els

  • JavaScript中ES6字符串扩展方法

    es6这个String对象倒是扩展了不少方法,但是很多都是跟字符编码相关,个人选了几个感觉比较常用的方法: includes 搜索字符的神器 还记得我们之前如何判断某个字符串对象是否包含特地字符的吗? var str='google'; if(str.indexOf('o')>-1){ console.log('yes'); }else{ console.log('no'); } indexOf本来只是一个获取字符对应位置的方法,因为找到不到会返回-1这个值,就成了判断是否包含的方法,inclu

  • JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)

    js中输出信息的方法内容如下所示: 1.文档流输出 document.write('hello'); 2.输出信息提示框 模态对话框 window.alert('要输出显示的内容'); 或 alert('要输出显示的内容'); alert(n); 3.信息确认框 var f = window.confirm('是否要进入新浪网'); confirm(""); if(f){ location.href = 'http://www.sina.com.cn'; } 4.提示输入框 windo

  • JavaScript 中使用 Generator的方法

    Generator 是一种非常强力的语法,但它的使用并不广泛(参见下图 twitter 上的调查!).为什么这样呢?相比于 async/await,它的使用更复杂,调试起来也不太容易(大多数情况又回到了从前),即使我们可以通过非常简单的方式获得类似体验,但是人们一般会更喜欢 async/await. 然而,Generator 允许我们通过 yield 关键字遍历我们自己的代码!这是一种超级强大的语法,实际上,我们可以操纵执行过程!从不太明显的取消操作开始,让我们先从同步操作开始吧. 我为文中提到

  • JavaScript中利用Array filter() 方法压缩稀疏数组

    什么是稀疏数组 数组元素的索引不一定要连续的,它们之间可以有空缺.每个javaScript数组都有一个length属性.针对非稀疏数组,该属性就是数组元素的个数:针对稀疏数组,length比所有元素的个数要大. Array filter() 方法会跳过稀疏数组中缺少的元素,它的返回数组总是稠密的. (1)压缩稀疏数组的空缺: var dense = sparse.filter( function(currentValue) { return true; } ); (2)压缩稀疏数组的空缺,并且删

随机推荐