2010-04-28 9 views
40

Wie verwandeln ichurldecode in Rubin?

www.bestbuy.com/site/Electronics\Audio\abcat0200000.c=3fid=3dabcat0200000 

in seinem ursprünglichen Format?

www.bestbuy.com/site/Electronics/Audio/abcat0200000.c?id=abcat0200000 

Gibt es eine urldecode?

Antwort

5

Nun das Ding mit =3f und =3d ist quoted-druckbare Codierung. Ruby kann es mit der .unpack("M") Methode decodieren.

Die Backslashes? Sie sind nur komisch und falsch. Es wäre wahrscheinlich sicher, sie an / zu ersetzen, da der Backslash nicht in einer URL enthalten sein sollte.

19

Das Äquivalent von PHP urldecode in Ruby ist CGI::unescape.

130

Eine bessere Methode ist URI.unescape:

decoded_uri = URI.unescape(encoded_uri) 
+2

Warum nicht 'CGI.unescape' statt? –

+2

Dies ist ein anderes Werkzeug. http://Stackoverflow.com/a/13059657/754368 – merqlove

15

Via decode:

require 'uri' 
URI.decode(encoded_uri)