2012-01-03 16 views
10

Hay muchas discusiones sobre el escape de URL en Ruby, pero desafortunadamente no encontré una solución adecuada.url escapando en ruby ​​

En general, URI.escape debería hacer el trabajo, pero parece que no admite todos los caracteres, por ejemplo, no escapa a "[".

URI.parse(URI.escape("1111{3333")) 

funciona bien.

URI.parse(URI.escape("1111[3333")) 

arroja una excepción.

Entiendo que "[" no es un personaje elegible en la URL según RFC, pero cuando lo introduzco en el navegador lo toma y lo renderiza, así que necesito exactamente el mismo comportamiento.

¿Conoce alguna solución preparada para escapar en Ruby?

Respuesta

16

Me suelen utilizar

CGI.escape 

escapar URI parámetros.

require 'cgi'. 

CGI.escape('1111[3333') 
=> "1111%5B3333" 
+0

Gracias, parece que hace todo lo que necesito – com

+1

lo extraño es que CGI.escape ('1111 3333') = "1111 + 3333", que debe ser "1111% 203333", pero en realidad enlaces funciona también con "+" – com

Cuestiones relacionadas