ruby-on-rails - Ruby on Rails - 阿拉伯文本有时会被编码,而有些则不会 - 为什么以及如何修复?

标签 ruby-on-rails arabic urlencode arabic-support

我想保存一个包含阿拉伯字符的维基百科链接。
在我的控制台我可以做

> title = "The Broken Wings / الأجنحة المتكسرة"
 => "The Broken Wings / الأجنحة المتكسرة
它以英语和阿拉伯语正确返回。但是,如果我尝试保存链接,则会对阿拉伯字符进行编码。
当我尝试输入此链接时:https://ar.wikipedia.org/wiki/الأجنحة_المتكسرة它更改为 https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%A3%D8%AC%D9%86%D8%AD%D8%A9_%D8%A7%D9%84%D9%85%D8%AA%D9%83%D8%B3%D8%B1%D8%A9如何按原样保存链接?

最佳答案

我假设“控制台”是指 Rails 控制台。 Ruby(自 2.0 起)使用 UTF-8 作为其默认字符编码。这意味着它可以本地处理通用字符集(又名 Unicode)字符。因此,当您在 Rails 控制台中处理阿拉伯字符串时,不会发生任何转换。
但是,对于 URI(统一资源标识符——简单地说是 URL 的“路径”部分),标准 (RFC3986) 规定只允许使用 US-ASCII 和一些特殊字符。您可以 使用其他字符来指定位置(所谓的国际化资源标识符),但只有某些系统本身理解 IRI。否则,它们会被转换为称为“百分比编码”的字节编码,这就是您在维基百科 URL 中看到的内容。
introduction更完整地解释了多语言网络寻址的工作原理以及 IRI 和 URI 之间的转换如何与百分比编码一起工作。

关于ruby-on-rails - Ruby on Rails - 阿拉伯文本有时会被编码,而有些则不会 - 为什么以及如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62560183/

相关文章:

java - Java AWT 中的阿拉伯文本

C# 解码路径上包含 %2F 的 URL,有什么方法可以指示 API 按原样发送 URL?

php - Urlencode 除了斜杠之外的所有内容?

iphone - 使用 ASIHTTPRequest 从 iPhone 上传到 Ruby on Rails

ruby-on-rails - 从 FactoryGirl.lint 获取错误

ruby-on-rails - Ruby:如何为我的枚举中的第一个常量获取 -1 的值?

ruby-on-rails - Bundler 不会在生产 rails 应用程序中加载 gem

c++ - 源代码中用阿拉伯字母初始化字符串

php - 在线编辑后阿拉伯字体显示为问号

javascript - 如何在 JavaScript 中生成 Shift_JIS(SJIS) 百分比编码字符串