URL编码转换,escape() encodeURI() encodeURIComponent()


Posted in Javascript onDecember 27, 2006

escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

英文解释:MSDN JScript Reference: The escape method returns a string value (in Unicode format) that contains the contents of [the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as "%20."
Edge Core Javascript Guide: The escape and unescape functions let you encode and decode strings. The escape function returns the hexadecimal encoding of an argument in the ISO Latin character set. The unescape function returns the ASCII string for the specified hexadecimal encoding value.

encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

英文解释:MSDN JScript Reference: The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: ":", "/", ";", and "?". Use encodeURIComponent to encode these characters. Edge Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character

encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( ) 

英文解释:MSDN JScript Reference: The encodeURIComponent method returns an encoded URI. If you pass the result to decodeURIComponent, the original string is returned. Because the encodeURIComponent method encodes all characters, be careful if the string represents a path such as /folder1/folder2/default.html. The slash characters will be encoded and will not be valid if sent as a request to a web server. Use the encodeURI method if the string contains more than a single URI component. Mozilla Developer Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
      另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

英文注释:The escape() method does not encode the + character which is interpreted as a space on the server side as well as generated by forms with spaces in their fields. Due to this shortcoming, you should avoid use of escape() whenever possible. The best alternative is usually encodeURIComponent().Use of the encodeURI() method is a bit more specialized than escape() in that it encodes for URIs [REF] as opposed to the querystring, which is part of a URL. Use this method when you need to encode a string to be used for any resource that uses URIs and needs certain characters to remain un-encoded. Note that this method does not encode the ' character, as it is a valid character within URIs.Lastly, the encodeURIComponent() method should be used in most cases when encoding a single component of a URI. This method will encode certain chars that would normally be recognized as special chars for URIs so that many components may be included. Note that this method does not encode the ' character, as it is a valid character within URIs.

Javascript 相关文章推荐
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
JSON 数据格式介绍
Jan 13 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
javascript版2048小游戏
Mar 18 Javascript
jQuery横向擦除焦点图特效代码分享
Sep 06 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 #Javascript
破除网页鼠标右键被禁用的绝招大全
Dec 27 #Javascript
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 #Javascript
用javascript实现无刷新更新数据的详细步骤 asp
Dec 26 #Javascript
提高 DHTML 页面性能
Dec 25 #Javascript
js中几种去掉字串左右空格的方法
Dec 25 #Javascript
js静态作用域的功能。
Dec 25 #Javascript
You might like
php实现分页工具类分享
2014/01/09 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php微信开发之图片回复功能
2018/06/14 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Python图算法实例分析
2016/08/13 Python
Python中functools模块函数解析
2017/03/12 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python 换位密码算法的实例详解
2017/07/19 Python
在Python中增加和插入元素的示例
2018/11/01 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python标准库itertools的使用方法
2020/01/17 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
python装饰器代码深入讲解
2021/03/01 Python
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
法律七进实施方案
2014/03/15 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
运动会入场口号
2014/06/07 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
环境卫生整治简报
2015/07/20 职场文书
致接力运动员加油稿
2015/07/21 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript