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