url在rails上的ruby中编码等效

时间:2010-03-01 03:33:06

标签: php ruby-on-rails ruby

Ruby on Rails 2.3.5中是否有与PHP的urlencode等效的内容? (它对要在URL的查询部分中使用的字符串进行编码) 我搜索了它,但所有的答案似乎都追溯到2006年之前,似乎是日期。 This is what I found。在视图中调用CGI::escape似乎有点不正常。

是否有等效的辅助函数?

谢谢!

4 个答案:

答案 0 :(得分:96)

我相信你正在寻找u辅助方法:

<%=u "URL ENCODE <p>ME</p>" %>

我似乎无法找到该方法的文档,但如果我在不久的将来找到它,我一定会在这里放一个链接。

编辑:您可以找到此方法的文档here

答案 1 :(得分:61)

如果您想在没有ERB的情况下进行,可以使用以下内容:

Rack::Utils.escape('http://example.com')
#=> "http%3A%2F%2Fexample.com"

答案 2 :(得分:39)

这对我来说比Rack::Utils.escape

更有效
URI::escape('http://example.com/?param=Hello World')

因为它用%20代替+

替换了空格

答案 3 :(得分:7)

ERB::Util.html_escape,其别名为hERB::Util.url_encode,其别名为u

http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html

自Sam Soffes回答以来,方法名称似乎已经改变,但是别名没有。