parsingstring以添加到URL编码的URL

鉴于string:

"Hello there world" 

我怎样才能创build一个URL编码的string,如下所示:

 "Hello%20there%20world" 

如果string还有其他符号,我也想知道该怎么做,如:

 "hello there: world, how are you" 

最简单的方法是什么? 我正在parsing,然后build立一些代码。

 require 'uri' URI.encode("Hello there world") #=> "Hello%20there%20world" URI.encode("hello there: world, how are you") #=> "hello%20there:%20world,%20how%20are%20you" URI.decode("Hello%20there%20world") #=> "Hello there world" 

Ruby的URI对此很有用。 您可以通过编程方式构build整个URL,并使用该类添加查询参数,并为您处理编码:

 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" 

这些例子是有用的:

 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" 

这些链接也可能是有用的:

  • 何时编码空格加(+)或%20?
  • URL编码空格字符:+或%20?
  • 17.13.4从W3的“HTML文档中的表单”build议表单内容types 。

如果有人有兴趣,最新的做法是在再培训局做:

  <%= u "Hello World !" %> 

这将呈现:

您好%20World%20%21

url_encode的缩写

你可以在这里find文档