В чем разница между 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"
Однако, как правило, нет точек, избегающих точек.