我有一个包含阿拉伯字符的字符串 "محمود"
当我尝试参数化这个字符串时,它返回空字符串“”
x = "محمود"
x.parameterize => ""
我检查了参数化代码,发现它调用 I18n.transliterate 返回问号“??????”
我引用上一个问题How do you customize transliterations in a Rails 3 app?尝试自定义音译
但仍然返回空白字符串。
有什么帮助吗?
最佳答案
parameterize
方法应该使字符串 URL 安全,并且对 URL 中可以出现的字符类型有严格限制。通常,任何不是严格 a-z
或 0-9
或 -
的内容都会被删除。
您总是可以尝试修复它,以便默认接受多字节 UTF-8 字符。当前的实现确实非常缺乏。一个更健壮的版本不会只允许一小部分特定字符,而是会剔除麻烦的字符。
关于ruby-on-rails - 使用音译的 Rails 参数化不适用于阿拉伯语/Unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824902/