В чем разница между URI.escape и URI.encode в Ruby?

Я пытаюсь выяснить разницу между URI.escape и URI.encode в Ruby.

Я также не делаю то, что хочу, чтобы полностью кодировать URL-адрес.

Например, я хочу http://my.web.com быть http%3A%2F%2Fmy%2Eweb%2Ecom

Ответ 1

Нет никакой разницы. В Ruby 1.9.3 encode это просто псевдоним для escape.

[Edit] Обратите внимание, что эти методы позволяют кодировать "небезопасный" дескриптор символов:

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

Спасибо @muistooshort! знак равно

Ответ 2

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" 

Однако, как правило, нет точек, избегающих точек.