On a website I have the word pluș sent via POST to a Django view. It is sent as plu%25C8%2599. So I took that string and tried to figure out a way how to make %25C8%2599 back into ș.
I tried decoding the string like this:
from urllib import unquote_plus s = "plu%25C8%2599" print unquote_plus(unquote_plus(s).decode('utf-8'))
The result i get is pluÈ which actually has a length of 5, not 4.
How can I get the original string pluș after it's encoded ?
I managed to do it like this
def js_unquote(quoted): quoted = quoted.encode('utf-8') quoted = unquote_plus(unquote_plus(quoted)).decode('utf-8') return quoted
It looks weird but works the way I needed it.
URL-decode twice, then decode as UTF-8.