Angesichts der Zeichenfolge:
"Hello there world"
Wie kann ich eine URL-codierte Zeichenfolge wie folgt erstellen:
"Hello%20there%20world"
Ich würde auch gerne wissen, was zu tun ist, wenn die Zeichenfolge auch andere Symbole enthält, wie zum Beispiel:
"hello there: world, how are you"
Was wäre der einfachste Weg, dies zu tun? Ich wollte analysieren und dann Code dafür erstellen.
ruby-on-rails
ruby
ruby-on-rails-3
Mohamed El Mahallawy
quelle
quelle
URI.encode('api.example.com', /\W/)
URI.encode("http://google.com") => "http://google.com"
. Besser verwendenCGI.escape
("https%3A%2F%2Fgoogle.com"
)Während die aktuelle Antwort besagt,
URI.encode
dass die Nutzung seit Ruby 1.9.2 veraltet und veraltet ist. Es ist besser zu nutzenCGI.escape
oderERB::Util.url_encode
.quelle
Rubys URI ist dafür nützlich. Sie können die gesamte URL programmgesteuert erstellen und die Abfrageparameter mithilfe dieser Klasse hinzufügen. Die Codierung wird dann für Sie ausgeführt:
require 'uri' uri = URI.parse('http://foo.com') uri.query = URI.encode_www_form( 's' => "Hello there world" ) uri.to_s # => "http://foo.com?s=Hello+there+world"
Die Beispiele sind nützlich:
URI.encode_www_form([["q", "ruby"], ["lang", "en"]]) #=> "q=ruby&lang=en" URI.encode_www_form("q" => "ruby", "lang" => "en") #=> "q=ruby&lang=en" URI.encode_www_form("q" => ["ruby", "perl"], "lang" => "en") #=> "q=ruby&q=perl&lang=en" URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]]) #=> "q=ruby&q=perl&lang=en"
Diese Links könnten auch nützlich sein:
quelle
Wenn jemand interessiert ist, ist der neueste Weg, dies zu tun, in ERB:
<%= u "Hello World !" %>
Dies wird rendern:
u steht für url_encode
Die Dokumente finden Sie hier
quelle