js encodeURI() decodeURI() encodeURIComponent() decodeURIComponent()

来源:互联网 发布:美国聊天软件排名 编辑:程序博客网 时间:2024/05/17 06:53

encodeURIencodeURIComponent都是ECMA-262标准中定义的函数,它们都是用来对URI(RFC-2396)字符串进行编码的全局函数,但是处理方式和使用场景不同。


RFC-2396字符串分类

  1. 保留字符
    URI中的保留关键字符,用于分割URI的各个部分。

    “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”

  2. Mark字符
    RFC-2396特别定义的字符,但没有说明特殊用途。

    “-” | “_” | “.” | “!” | “~” | “*” | “’” | “(” | “)”

  3. 基本字符
    URI的主题部分,包括:

    所有的大写字母、小写字母和数字


区别

  1. encodeURI
    该函数对传入字符串中的所有非(基本字符、Mark字符和保留字符)进行转义编码(escaping).
var uri="my test.asp?name=ståle&car=saab";document.write(encodeURI(uri));

–> my%20test.asp?name=st%C3%A5le&car=saab

  1. encodeURIComponent
    对于保留字符同样做转义编码.
var uri="http://jb51.net/my test.asp?name=ståle&car=saab";document.write(encodeURIComponent(uri)); 

–> http%3A%2F%2Fjb51.net%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab

0 0