Rails使用Transliterate进行参数化不适用于阿拉伯语/ Unicode字符串

时间:2011-10-19 16:44:50

标签: 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?

自定义音译

但仍然返回空白字符串。

任何帮助?

1 个答案:

答案 0 :(得分:3)

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

您可以随时尝试修复它,以便默认允许使用多字节UTF-8字符。目前的实施非常缺乏。不仅仅允许一小部分特定字符,更强大的版本将消除麻烦的那些。