Php RubyonRails中的url编码等价物

Php RubyonRails中的url编码等价物,php,ruby-on-rails,ruby,Php,Ruby On Rails,Ruby,RubyonRails 2.3.5中是否有与PHP的urlencode等效的代码?(它对URL的查询部分中使用的字符串进行编码) 我在谷歌上搜索了一下,但所有的答案似乎都可以追溯到2006年之前,而且似乎都过时了。 . 在视图中调用CGI::escape似乎有点不正常 是否存在等效的辅助函数 谢谢 我相信uhelper方法就是您想要的: <%=u "URL ENCODE <p>ME</p>" %> 我似乎找不到该方法的文档,但如果我在不久的将来找到它,我

RubyonRails 2.3.5中是否有与PHP的urlencode等效的代码?(它对URL的查询部分中使用的字符串进行编码) 我在谷歌上搜索了一下,但所有的答案似乎都可以追溯到2006年之前,而且似乎都过时了。 . 在视图中调用
CGI::escape
似乎有点不正常

是否存在等效的辅助函数


谢谢

我相信
u
helper方法就是您想要的:

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

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


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

如果您想在没有ERB的情况下执行此操作,可以使用以下方法:

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

这比
框架::Utils.escape对我更有效:

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

因为它将空格替换为
%20
,而不是
+
ERB::Util.html\u escape
,后者别名为
h
,后者别名为
u


自Sam Soffe回答后,方法名称似乎发生了变化,但别名没有发生变化。

没有。PHP的urlencode(请参阅)执行类似于“”->“%20”的操作。啊!还没有机会使用那个助手!所以我不想改变投票,因为它似乎不认为你的答案是经过编辑的;我会在几分钟后回来看看是否有变化。如果能链接到“u”方法的文档,我将不胜感激。它似乎是
url\u encode
的缩写。它是来自ERB::Util模块的Ruby核心方法
u
url\u encode
@FilipK的别名,为什么搜索时Rails API文档中没有出现
url\u encode
?显然,不要在视图中使用此选项,但这个答案有助于将我带到这里的google搜索:)URI::escape似乎有不同的用途。例如,它不会将和替换为%2C和%3A,也不会替换为%2F。Rack::Utils确实如此。@Abdo我相信URI::escape是在将URI插入HTML属性时使用的。也就是说,当像这样使用
href=“”
,例如
。Rack::Utils.escape用于在URI中插入内容的时间,例如作为参数。为什么
%20
优于
+
?任何URL解析器都能理解这两种情况。电子邮件客户端无法理解+。我目前正在努力解决这个问题,令人惊讶的是,很难找到一个合适的答案。这是一种误导,URI escape是一种不同的方法。这不会将特殊字符转换为url编码字符串。。e、 g“/”至“%2F”