Я работаю над веб-приложением, где я должен закодировать и декодировать строку в стороне JavaScript и бэкенде Ruby кода. единственная проблема состоит в том, что методы Escape для JavaScript и Ruby имеют небольшую разницу. в JavaScript " "
рассматривается как "%20"
но в рубине " "
кодируется к "+"
.
Какой-либо способ решить это? Другой метод Ruby для кодирования строки в необработанном URL кодирует?
После некоторого тестирования Селена я заметил это по некоторым причинам URI.unescape
перепутывает между "£"
и "?"
. Если я использую encodeURIComponent("£");
в JavaScript и затем URI.unescape("%C2%A3")
в Ruby, который является значением, которое мы получаем, когда мы кодируем "£"
знак, я добираюсь "?"
знак возвращается. Какое-либо решение?
Используйте
URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
в ruby, и
encodeURIComponent(foo);
в javascript
Обе эти программы будут вести себя одинаково и кодировать пробел как %20.