2010-04-28 10 views
40

¿Cómo transformourldecode en ruby?

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

en su formato original?

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

¿Hay un urldecode?

Respuesta

5

Bueno, la cosa con =3f y =3d es la codificación entre comillas imprimibles. Ruby puede decodificarlo con el método .unpack("M").

¿Las barras invertidas? Son simplemente extraños e incorrectos. Probablemente sería seguro reemplazarlos por string a / ya que la barra diagonal inversa no debería estar en una URL para empezar.

19

El equivalente de PHP urldecode en Ruby es CGI::unescape.

130

Un método mejor es URI.unescape:

decoded_uri = URI.unescape(encoded_uri) 
+2

Por qué no usar 'CGI.unescape' en su lugar? –

+2

Esta es una herramienta diferente. http://stackoverflow.com/a/13059657/754368 – merqlove

15

Via decode:

require 'uri' 
URI.decode(encoded_uri)