Saltar al contenido

Cómo codificar URL una cadena en Ruby

Solución:

str = "x12x34x56x78x9axbcxdexf1x23x45x67x89xabxcdxefx12x34x56x78x9a".force_encoding('ASCII-8BIT')
puts CGI.escape str


=> "%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A"

Hoy en día deberías usar ERB::Util.url_encode o CGI.escape. La principal diferencia entre ellos es su manejo de espacios:

>> ERB::Util.url_encode("foo/bar? baz&")
=> "foo%2Fbar%3F%20baz%26"

>> CGI.escape("foo/bar? baz&")
=> "foo%2Fbar%3F+baz%26"

CGI.escape sigue las especificaciones de formularios CGI / HTML y le brinda una application/x-www-form-urlencoded cadena, que requiere que los espacios se escapen para +, mientras que ERB::Util.url_encode sigue RFC 3986, que requiere que se codifiquen como %20.

Consulte “¿Cuál es la diferencia entre URI.escape y CGI.escape?” para más discusión.

str = "x12x34x56x78x9axbcxdexf1x23x45x67x89xabxcdxefx12x34x56x78x9a"
require 'cgi'
CGI.escape(str)
# => "%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A"

Tomado del comentario de @ J-Rou

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *