在Ruby on Rails 2.3.5中是否有与PHP的urlencode等效的函数?(它将字符串编码以在URL的查询部分中使用)
我搜索了一下,但所有的答案似乎都可以追溯到2006年之前,而且看起来已经过时了。
这是我找到的资料。在视图中调用CGI::escape
有点不太正常。
是否有类似的帮助函数呢?
谢谢!
在Ruby on Rails 2.3.5中是否有与PHP的urlencode等效的函数?(它将字符串编码以在URL的查询部分中使用)
我搜索了一下,但所有的答案似乎都可以追溯到2006年之前,而且看起来已经过时了。
这是我找到的资料。在视图中调用CGI::escape
有点不太正常。
是否有类似的帮助函数呢?
谢谢!
我认为u
辅助方法是您要寻找的内容:
<%=u "URL ENCODE <p>ME</p>" %>
这里使用了方法 ERB::Util.url_encode
,它被别名为u
。
你可以在这里找到该方法的文档:http://rdoc.info/stdlib/erb/1.8.7/ERB/Util:url_encode。
如果你不想使用ERB,你可以使用以下代码:
Rack::Utils.escape('http://example.com')
#=> "http%3A%2F%2Fexample.com"
这也会将/
进行转换。
这对我来说比使用Rack::Utils.escape
更有效:
URI::escape('http://example.com/?param=Hello World')
它用%20
代替了空格而不是+
但它不会替换/
href="<%= ... %>"
会引起问题,例如 "
, <
和 >
。Rack::Utils.escape是在内容将被插入URI中时使用的,例如作为参数。 - Leo%20
жҜ”+
жӣҙеҘҪпјҹд»»дҪ•URLи§ЈжһҗеҷЁйғҪеҸҜд»ҘзҗҶи§ЈдёӨиҖ…гҖӮ - LeopdERB::Util.html_escape
被别名为h
,ERB::Util.url_encode
被别名为u
。
http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html
方法名称似乎与Sam Soffes的答案不同,但别名没有改变。
u
是url_encode
的别名。 - FilipKurl_encode
时,为什么没有出现结果?http://api.rubyonrails.org/ - Chloe