如何在ruby中将字符串更改为http表单?
例如#
到%23
。
答案 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,则可以安全使用:)