6

Rubyでエンコードされた値をURLクエリ文字列に追加する便利で機能的な方法を探しています。現在、私は持っています:

require 'open-uri'

u = URI::HTTP.new("http", nil, "mydomain.example", nil, nil, "/tv", nil, "show=" + URI::encode("Rosie & Jim"), nil) 

p u.to_s # => "http://mydomain.example/tv?show=Rosie%20&%20Jim"

値が切り捨てられない"http://mydomain.example/tv?show=Rosie%20%26%20Jim"ように取得する必要があるため、これは私が探しているもので はありません。show=

Open :: URIにはこれを行う別のメソッドがありますか?そうでない場合は、他の標準的なRubyまたはgemで実行できますか?

4

2 に答える 2

10

CGI::escapeの代わりに試してくださいURI::encodeここにドキュメント

于 2012-02-09T16:55:16.387 に答える
8

URI.encode_www_formうまく機能し、複数の引数を追加するのに便利です

q = URI.encode_www_form("show" => "Rosie & Jim", "series" => "3", "episode" => "4")
u = URI::HTTP.new("http", nil, "mydomain.example", nil, nil, "/tv/ragdoll", nil, q, nil)
于 2012-02-09T17:09:24.273 に答える