views:

1046

answers:

3

Hello,

Are there any equivalent Javascript functions for Python's urllib.quote() and urllib.unquote()?

The closest I've come across are escape(), encodeURI(), and encodeURIComponent() (and their corresponding un-encoding functions), but they don't encode/decode the same set of special characters as far as I can tell.

Thanks,
Cameron

A: 

OK, I think I'm going to go with a hybrid custom set of functions:

Encode: Use encodeURIComponent(), then put slashes back in
Decode: Decode any %hex values found

Cameron
+1  A: 

Try a regex. Something like this:

mystring.replace(/[\xFF-\xFFFF]/g, "%" + "$&".charCodeAt(0));

That will replace any character above ordinal 255 with its corresponding %HEX representation.

jiggy
Cameron
jiggy
+1  A: 

Python: urllib.quote

Javascript:unescape

I haven't done extensive testing but for my purposes it works most of the time. I guess you have some specific characters that don't work. Maybe if I use some Asian text or something it will break :)

This came up when I googled so I put this in for all the others, if not specifically for the original question.

Luke Stanley