>>62
require 'uri'
require 'webrick'
data = {'k1'=>'v1', :k2 =>'v2', 'k3' => '3&4'}
uri = URI.parse("http://example.com/")
query = data.map{|k, v|
# do not use URI.escape
"#{WEBrick::HTTPUtils.escape(k.to_s)}=#{WEBrick::HTTPUtils.escape(v.to_s)}"
}.join('&')
uri.query = uri.query.to_s + query

p uri.to_s