返回列表索引 上一页 下一页
encodeURI( ) URI中的转义字符

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

语法

encodeURI(uri)

参数

uri

一个字符串,含有URl或其他要编码的文本。

返回值

uri的副本,其中某些字符被十六进制的转义序列替换了。

抛出

URIError

说明uri中含有格式化错误的Unicode替代对,不能被编码。

描述

encodeURI()是全局函数,返回参数uri的编码副本。ASCII的字母和数字不编码, 此外下面的ASCII标点符号也不编码:

- _ . ! ~ * ' ( ) 

因为encodeURI()的目的是给URl进行完整的编码,所以以下在URl中具有特殊含 义的ASCII标点符号也不转义:

; / ? : @ & = + $ , # 

uri中的其他字符都将转换成它的UTF—8编码字符,然后用十六进制的转义序列(形式为%xx)对生成的一个、两个或三个字节的字符编码,用它们替换uri中原有的字 符。在这种编码模式中,ASCII字符由一个%xx转义字符替换,在\u0080到\u07ff 之间编码的字符由两个转义序列替换,其他的16位Unicode字符由三个转义序列替 换。

如果使用该方法编码URl,应该确保URI组件(如查询字符串)中不含有URl分隔符,如?和#。如果组件中含有这些符号,应该用encodeURIComponent()方法分别 对各个组件编码。

用方法decodeURI()可以对该方法进行解码操作。在ECMAScriptv3之前,可以用 escape()和unescape()方法(反对使用)执行相似的编码解码操作。

示例

// 返回 http://www.isp.com/app.cgi?arg1=1&arg2=hello%20world

encodeURI("http://www.isp.com/app.cgi?arg1=1&arg2=hello world");

encodeURI("\u00a9");  // 版权字符编码为 %C2%A9

参阅

decodeURI( ) , decodeURIComponent( ) , encodeURIComponent( ) , escape( ) , unescape( )

返回列表索引 上一页 下一页