Привет, есть ли эквивалентный метод ruby для метода JavaScript encodeURIComponent? Я использую URI.unescape(str), но он распознает "£" (после encodeURIComponent он становится "%C2%A3") как знак "?". любое решение? спасибо
Ruby эквивалент JavaScripts encodeURIComponent, который производит идентичный вывод?
Ответ 1
URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
найдено здесь: Как преобразовать/декодировать URL в JavaScript и Ruby, чтобы получить одинаковые значения в обоих?
Ответ 2
CGI.escape должен бежать правильно, за исключением того, что пробелы экранируются как +.
Обратите внимание, что URI.escape устарел в Ruby 1.9.2...
Существует долгое обсуждение на ruby-core для заинтересованных.
Ответ 3
Я думаю, что самый простой способ - URI.encode_www_form_component.