我正在尝试找出Ruby中 URI.escape
和 URI.encode
之间的区别。
也没有做我想要的,即完全编码URL。
例如,我希望http://my.web.com
为http%3A%2F%2Fmy%2Eweb%2Ecom
答案 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"
但是,通常没有必要逃避这些点。