diff --git a/lib/url.js b/lib/url.js index 4c0ef0102fad..2a0b7abee6e4 100644 --- a/lib/url.js +++ b/lib/url.js @@ -309,11 +309,13 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { // need to be. for (var i = 0, l = autoEscape.length; i < l; i++) { var ae = autoEscape[i]; - var esc = encodeURIComponent(ae); - if (esc === ae) { - esc = escape(ae); + if (rest.indexOf(ae) !== -1) { + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); } - rest = rest.split(ae).join(esc); } }