JavaScript encodeURIComponent With Backslash

17,877

This function encodes special characters. In addition, it encodes the following characters: , / ? : @ & = + $ # .

This definition is vague as to what "special characters" are. It sounds like a comparison between encodeURI and encodeURIComponent. Both will correctly escape \ as %5C, so you don't have to worry about backslashes.

encodeURI will leave the listed characters as it is assumed that the entire URI is being encoded:

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

encodeURIComponent will escape everything as it is assumed that the string is to be used as part of a query-string:

'http://example.com?foo=' + encodeURIComponent('http://example.com/fizz/buzz.html');
//produces "http://example.com?foo=http%3A%2F%2Fexample.com%2Ffizz%2Fbuzz.html"
Share:
17,877
Kevin Meredith
Author by

Kevin Meredith

Scala developer Haskell student https://www.linkedin.com/pub/kevin-meredith/11/22a/334

Updated on June 15, 2022

Comments

  • Kevin Meredith
    Kevin Meredith almost 2 years

    w3schools says the following about encodeURIComponent function:

    This function encodes special characters. In addition, it encodes the following characters: , / ? : @ & = + $ #.

    Does that mean that it cannot encode a backslash (\)?