ruby-on-rails - 使用音译的 Rails 参数化不适用于阿拉伯语/Unicode 字符串

标签 ruby-on-rails ruby ruby-on-rails-3 internationalization activesupport

我有一个包含阿拉伯字符的字符串 "محمود"

当我尝试参数化这个字符串时,它返回空字符串“”

x = "محمود"
x.parameterize    => ""

我检查了参数化代码,发现它调用 I18n.transliterate 返回问号“??????”

我引用上一个问题How do you customize transliterations in a Rails 3 app?尝试自定义音译

但仍然返回空白字符串。

有什么帮助吗?

最佳答案

parameterize 方法应该使字符串 URL 安全,并且对 URL 中可以出现的字符类型有严格限制。通常,任何不是严格 a-z0-9- 的内容都会被删除。

您总是可以尝试修复它,以便默认接受多字节 UTF-8 字符。当前的实现确实非常缺乏。一个更健壮的版本不会只允许一小部分特定字符,而是会剔除麻烦的字符。

关于ruby-on-rails - 使用音译的 Rails 参数化不适用于阿拉伯语/Unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824902/

相关文章:

javascript - 带回调的 Rails reCAPTCHA

ruby-on-rails - Rails 3 性能

ruby-on-rails - 无法启动 Rails 服务器或控制台 - (crack/xml) LoadError

ruby - 所有类方法都是用 "def self.foo"定义的吗?

ruby-on-rails-3 - Rails wrap_parameters vs include_root_in_json,有什么区别?

ruby-on-rails - Ruby of Rails 无法在没有前导字母字符的情况下呈现部分(仅使用数字或前导数字)

ruby - Nokogiri 没有从 Watir 加载 "browser"

ruby-on-rails - 获取实例变量的名称

ruby - 相当于 ActiveRecord 的 `serialize` 方法的 Mongoid

ruby-on-rails - 建立连接似乎不支持连接