Ruby中的URI.escape和URI.encode有什么区别?

时间:2012-11-27 22:04:16

标签: ruby

我正在尝试找出Ruby中 URI.escape URI.encode 之间的区别。

也没有做我想要的,即完全编码URL。

例如,我希望http://my.web.comhttp%3A%2F%2Fmy%2Eweb%2Ecom

2 个答案:

答案 0 :(得分:14)

没有区别。在Ruby 1.9.3中encode is simply an alias for escape

[编辑] 请注意,这些方法允许对字符的“不安全”描述符进行编码:

URI.encode('http://my.web.com', /\W/) # => "http%3A%2F%2Fmy%2Eweb%2Ecom"

谢谢@muistooshort! =)

答案 1 :(得分:3)

CGI.escape几乎可以满足您的需求:

1.9.3p0 :005 > require 'cgi'
 => true 
1.9.3p0 :006 > CGI.escape 'http://my.web.com'
 => "http%3A%2F%2Fmy.web.com" 

但是,通常没有必要逃避这些点。