我正在开发一个 Web 应用程序,我必须在代码的 JavaScript 端和 Ruby 后端对字符串进行编码和解码。唯一的问题是 JavaScript 和 Ruby 的转义方法略有不同。在 JavaScript 中,""
被视为 "%20"
,但在 ruby 中,""
被编码为 "+"
.
有什么办法可以解决吗?另一种在原始 URL 编码中对字符串进行编码的 Ruby 方法?
经过一些 Selenium 测试后,我注意到由于某种原因,URI.unescape
混淆了 "£"
和 "?"
.如果我在 JavaScript 中使用 encodeURIComponent("£");
然后在 Ruby 中使用 URI.unescape("%C2%A3")
这是我们编码时得到的值"£"
符号,我得到返回的 "?"
符号。有什么解决办法吗?
最佳答案
使用
URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
在 ruby 中,和
encodeURIComponent(foo);
在 JavaScript 中
这两者的行为相同,并将空格编码为 %20。
关于javascript - 如何在 JavaScript 和 Ruby 中对原始 URL 进行编码/解码以在两者中获得相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834034/