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

本文详细介绍了ECMA-262标准中的encodeURI与encodeURIComponent函数的区别及应用场景。通过对比两种函数对保留字符、Mark字符及基本字符的处理方式,帮助读者更好地理解如何在网页开发中正确使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值