views:

1857

answers:

2

I've got a string from an HTTP header, but it's been escaped.. what function can I use to unescape it?

myemail%40gmail.com -> [email protected]

Would urllib.unquote() be the way to go?

+7  A: 

I am pretty sure that urllib's unquote is the common way of doing this.

>>> import urllib
>>> urllib.unquote("myemail%40gmail.com")
'[email protected]'

There's also unquote_plus:

Like unquote(), but also replaces plus signs by spaces, as required for unquoting HTML form values.

Paolo Bergantino
K, just wanted to make sure.. I hate using a function that appears to do the job, but ends up only working with a few examples that I did and breaking with real world vars. heh.Then it becomes impossible to track down the problem.. :P
Ian
+1  A: 

Yes, it appears that urllib.unquote() accomplishes that task. (I tested it against your example on codepad.)

las3rjock