Привет, есть ли эквивалентный метод 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
.