语法:
encodeURI(URIstring)
e.g
<pre name="code" class="javascript">var URL="http://www.new.com?name=Vincnet Zhong"
location.href=encodeURI(URL)
//编码后的URL为:http://www.new.com?name=Vincnet%20Zhong
返回值:
转换后的字符串encodeURIComponent():与encodeURI()方法相比,转换更多的字符。
语法
encodeURIComponent(URIstring)
返回值:
转换后的字符串
注意:无论如何,作为参数传递给这些方法的原字符串不会被改变。
encodeURI()对以下ASCII码在32到126之间的字符进行转换:
space " % < > [ \ ] ^ ` { | }
encodeURIComponent()对以下ASCII码在32到126之间的字符进行转换:
space " # $ % & + , / : ; < = >? @ [ \ ] ^ ` { | }
注意:合成的URL再次经过encodeURI()的时候会有危险,因为编码字符中的百分号自身也会被编码。
encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
如果为了向后兼容,需要用到escape()方法。
escape()方法编码的字符如下。
space ! " # $ % & ' ( ) , : ; < = > ? @ [ \ ] ^ ` { | } ~
然而在IE中,@符号不能通过escape()方法转换
P.S:
这些方法的命名使用了“URI”(Universal Resource Identifier,统一资源标识)。URI是包含了所有网络上可访问元素(文档,对象等)的引用。URL(Universal Resource Locator,统一资源定位器)是URI的一种,它包含元素的网络地址和访问机制的声明(如,http:)。对于大多数使用HTML,CSS,JavaScript的客户端Web制作,URI和URL的术语可以互换。