带有反斜杠的JavaScript encodeURIComponent

时间:2012-11-26 15:26:50

标签: javascript encoding

w3schools说明了encodeURIComponent函数:

  

此功能可对特殊字符进行编码。此外,   它编码以下字符:, / ? : @ & = + $ #

这是否意味着它无法编码反斜杠(\)?

1 个答案:

答案 0 :(得分:9)

  

此功能可对特殊字符进行编码。此外,它还会对以下字符进行编码:, / ? : @ & = + $ # .

这个定义对于“特殊字符”是什么含糊不清。这听起来像是encodeURIencodeURIComponent之间的比较。两者都会正确地将\转义为%5C,因此您不必担心反斜杠。

encodeURI将保留列出的字符,因为假设整个URI正在编码:

encodeURI('http://example.com/foo bar/baz.html');
//produces "http://example.com/foo%20bar/baz.html"

encodeURIComponent将转义所有,因为假设该字符串将用作查询字符串的一部分:

'http://example.com?foo=' + encodeURIComponent('http://example.com/fizz/buzz.html');
//produces "http://example.com?foo=http%3A%2F%2Fexample.com%2Ffizz%2Fbuzz.html"