url在rails上的ruby中编码等效

Yuv*_*rmi 45 php ruby ruby-on-rails

Ruby on Rails 2.3.5中是否有与PHP的urlencode等效的内容?(它编码一个字符串,用于URL的查询部分)我用Google搜索,但所有答案似乎都追溯到2006年之前,似乎是日期. 这是我发现的.CGI::escape在视图中调用似乎有点不正常.

是否有等效的辅助函数?

谢谢!

Mik*_*cic 96

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

<%=u "URL ENCODE <p>ME</p>" %>
Run Code Online (Sandbox Code Playgroud)

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

编辑:您可以在此处找到此方法的文档.

  • [url_encode](http://rdoc.info/stdlib/erb/1.8.7/ERB/Util:url_encode)是来自ERB :: Util模块的Ruby Core方法.`u`是`url_encode`的别名. (10认同)

Sam*_*fes 62

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

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

  • 显然,不要在视图中使用它,但这个答案有助于谷歌搜索带来了我:) (2认同)

yor*_*rch 39

这对我来说比以下更好Rack::Utils.escape:

URI::escape('http://example.com/?param=Hello World')
Run Code Online (Sandbox Code Playgroud)

因为它用%20而不是代替空格+

  • @Abdo我相信URI :: escape是在将URI插入HTML属性时使用的.IE它会在使用像`href ="<%= ...%>"`这样的问题时逃避会导致问题的实体,例如```,`<`和`>`.Rack :: Utils.escape用于当内容将插入_within_一个URI,例如作为参数. (9认同)
  • 这是误导,URI 转义是一种不同的方法。这不会将特殊字符转换为 url 编码的字符串.. 例如“/”到“%2F” (3认同)

web*_*guy 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回答以来,方法名称似乎发生了变化,但别名却没有.