javascript - 如何在 JavaScript 和 Ruby 中对原始 URL 进行编码/解码以在两者中获得相同的值?

标签 javascript ruby encoding

我正在开发一个 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/

相关文章:

javascript - 发电机查询中的运算符 OR

javascript - 与 redux 一起使用像 SPA 这样的rest-api 的好解决方案吗?

ruby-on-rails - rake 数据库 :seed generates ArgumentError: missing keywords: from, 到

c# - 如何从 IronRuby 调用 C# IEnumerable

c - GTK+ 2.24。如何在C中使用unicode符号

java - 如何检测Unix终端字符编码?

ruby - 使用俄语和波兰语符号在 ruby​​ 中写入文件

javascript - 如何将 GMT 时间转换为本地时间?

javascript - Gruntfile.js - 未找到任务 “default”

ruby - 如何在 Ruby 中从一个类中调用另一个类中的一个实例方法?