如何在ruby中将字符串更改为http表单?例如#to%23

时间:2010-12-16 06:02:46

标签: ruby escaping

如何在ruby中将字符串更改为http表单?
例如#%23

4 个答案:

答案 0 :(得分:3)

使用CGI类执行此操作

 url_encoded_string = CGI::escape("'Stop!' said Fred")
     # => "%27Stop%21%27+said+Fred"

参考http://www.ensta.fr/~diam/ruby/online/ruby-doc-stdlib/libdoc/cgi/rdoc/classes/CGI.html#M000067

答案 1 :(得分:1)

使用Ruby Standard CGI library转义法:

require 'cgi'
CGI::escape("#") // => "%23"

答案 2 :(得分:1)

URI::escape好像是这样做的。

答案 3 :(得分:1)

我建议

URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))

如果您的查询参数中也包含URL,则可以安全使用:)