JavaScript中各种编码解码函数的区别和注意事项

 更新时间:2010年08月19日 20:08:05   转载 作者:  
JavaScript 中encodeURI,encodeURIComponent与escape的区别和注
大家在使用JS提交数据时,尤其是中文的时候,经常会需要将要提交的字符串进行URL编码。在JS中对字符串进行URL编码有好几种方 法,encodeURI,encodeURIComponent,还有escape。在我看到的很多代码中escape这个函数用的最多,不过这个函数却 是不推荐使用的。下面我们来分别看看这几个函数:
  
  encodeURI:对指定的字符串进行URL编码,不包括 : # / \ = & 这些URL中的关键字符。
  
  encodeURIComponent:对字符串中的字符进行编码,包括URL中的特殊字符。
  
  escape:这个是JS比较早期版本的函数,这个函数中处理unicode字符的时候会有些问题。
  代码如下:
复制代码 代码如下:

var url = "http://www.abc.com?q=aa& amp;b=呵呵";
var encodedUrl = encodeURI(url);
alert(encodedUrl); //输出:http://www.abc.com?q=aa&b=%E5%91%B5%E5%91%B5
encodedUrl = encodeURIComponent(url);
alert(encodedUrl); //输出:http%3A%2F %2Fwww.abc.com%3Fq%3Daa%26b%3D%E5%91%B5%E5%91%B5
alert(escape(url)); //输出:http%3A//www.abc.com%3Fq%3Daa%26b%3D%u5475%u5475

  如上所示,escape函数中处理中文字符的时候,都会转换成%uxxxx这种形式,显然这个和URL编码的格式不一样,而 encodeURIComponent函数编码是最彻底的,如果没有特殊需要的话,encodeURIComponent这个函数是比较常用的,当然,也 许我们使用escape也不会有什么问题,也许你的服务端语言也能够正常的解析出来,不过这个函数在处理unicode字符的时候还不是很标准,所以这里 建议大家使用encodeURIComponent和decodeURIComponent这对函数来对字符串进行URL编码和解码。

相关文章

  • js获取IP和PcName(IE)在vs中可用

    js获取IP和PcName(IE)在vs中可用

    本文为大家介绍下js如何获取IP和PcName在IE下测试,代码如下,有需要的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • 关于跨站脚本攻击问题

    关于跨站脚本攻击问题

    这个问题我的理解是只要让其他网站能执行我的脚本我就有可能危害到,这个网站的用户安全
    2011-12-12
  • js 单击式的下拉菜单效果实例

    js 单击式的下拉菜单效果实例

    这篇文章介绍了js 单击式的下拉菜单效果实例,有需要的朋友可以参考一下
    2013-08-08
  • JavaScript 对Cookie 操作的封装小结

    JavaScript 对Cookie 操作的封装小结

    通过本篇,您能了解到: 匿名函数 闭包的产生 JavaScript实现private 以及 public 访问权限 document.cookie 的操作
    2009-12-12
  • 详解JavaScript中的构造器Constructor模式

    详解JavaScript中的构造器Constructor模式

    构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。通过本文给大家分享JavaScript中的构造器Constructor模式,对构造器constructor相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析

    wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析

    本文给大家带来的是一款非常不错的富文本编辑器WangEditor,他最大的特点是它在ie6,7,8上都可以做到失去焦点后仍然可以在原位置插入图片,而且代码量很少,下面我们就来分析下他是如何实现的呢
    2015-05-05
  • bootstrap的工具提示实例代码

    bootstrap的工具提示实例代码

    Bootstrap 工具提示(Tooltip)插件 当您想要描述一个链接的时候,工具提示(Tooltip)就显得非常有用。这篇文章通过实例代码给大家介绍bootstrap的工具提示功能,需要的朋友参考下吧
    2017-05-05
  • js实现ifram取父窗口URL地址的方法

    js实现ifram取父窗口URL地址的方法

    这篇文章主要介绍了js实现ifram取父窗口URL地址的方法,是javascript操作window.parent对象非常典型的应用技巧,需要的朋友可以参考下
    2015-02-02
  • Babel 入门教程学习笔记

    Babel 入门教程学习笔记

    Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,本篇文章主要介绍了Babel 入门教程学习笔记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • JS中的Replace()传入函数时的用法详解

    JS中的Replace()传入函数时的用法详解

    这篇文章主要介绍了JS中的Replace()传入函数时的用法详解,replace方法的语法是:stringObj.replace(rgExp, replaceText)关于js replace 传入函数的用法,大家通过本文学习吧
    2017-09-09

最新评论