Ruby on rails RubyonRails——阿拉伯语文本有时会被编码,而其他的则不会——为什么以及如何修复?

Ruby on rails RubyonRails——阿拉伯语文本有时会被编码,而其他的则不会——为什么以及如何修复?,ruby-on-rails,arabic,urlencode,arabic-support,Ruby On Rails,Arabic,Urlencode,Arabic Support,我想保存一个包含阿拉伯字符的维基百科链接 在我的控制台里,我能做到 > title = "The Broken Wings / الأجنحة المتكسرة" => "The Broken Wings / الأجنحة المتكسرة 它会正确地用英语和阿拉伯语返回。但如果我试图保存链接,它会对阿拉伯字符进行编码 当我尝试输入此链接时:https://ar.wikipedia.org/wiki/ا㶊㶤㶤㶡㶋㶤㶤㶡 它变为https://ar.

我想保存一个包含阿拉伯字符的维基百科链接

在我的控制台里,我能做到

> 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和一些特殊字符。可以使用其他字符指定位置(称为国际化资源标识符),但只有某些系统能够理解IRIs。否则,它们将被转换为一种称为“百分比编码”的字节编码,这是您在维基百科URL中看到的


这是一个更完整的工作,解释了多语言web寻址如何工作,以及IRIs和URI之间的转换如何使用百分比编码。

一般来说,我希望能够保存一个不转换阿拉伯语文本的字符串。字符串是否为URL。所谓控制台,我指的是Rails控制台,但这只是一个示例—尝试将URL从表单保存到数据库中也会做同样的事情。关于如何用阿拉伯语文本保存字符串有什么建议吗?谢谢Rails“开箱即用”应该很好地保存/加载Unicode字符串。我建议您使用更具体的代码和信息示例(Rails版本、使用哪个数据库等)来编辑问题。这将有助于人们更好地帮助你。问题似乎是阿拉伯语在没有空格的情况下加入到非阿拉伯语脚本中。类似于
“helloالعامية”
?(对不起,我不会说阿拉伯语,希望这不是胡言乱语。)