3

is there any way I can make the encodeURIComponent method ignore certain characters for example if I don't want it to encode the £ sign. ?

Cœur
  • 37,241
  • 25
  • 195
  • 267
Mo.
  • 40,243
  • 37
  • 86
  • 131

1 Answers1

3

This is not possible without wrapping it yourself.

Probably the safest thing to do would be...not do this. If you're a thrill seeker, just undo the parts you want decoded after the encoding is complete.

Something like this might be a naive way (i.e. my way) of doing it:

encodeURIComponent(uri).replace('%A3','£')
Michael Haren
  • 105,752
  • 40
  • 168
  • 205
  • Agreed. Just use `string.replace('%C2%A3','£');` – Josh May 18 '10 at 15:19
  • I swear that code sample wasn't there when I posted my comment... maybe I am going blind. – Josh May 18 '10 at 15:24
  • 2
    Your method wouldn't perform a global replace, it would only replace the first occurrence of `£`. For a global replace `/%C2%A3/g` would be required for the first parameter. – Andy E May 18 '10 at 15:26
  • @Josh: Michael might have put it in during the 5 minute silent editing window. – Andy E May 18 '10 at 15:29
  • @Andy Huh, never knew about that! – Josh May 18 '10 at 15:44
  • certainly would work in a way but not the best code practice. the reason i was asking about this is that i'm trying to unescape a string in ruby that was encoded by the encodeURIComponent(uri), but it recognizes '%C2%A3' as a '?'. – Mo. May 18 '10 at 16:17