2011-08-31 60 views
2

考虑下面的常数:如何从Ruby 1.8.7中的utf-8字符串获取第i个字符?

RUSSIAN_LOWERCASE_ALPHABET = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" 

当试图得到一个字母:

content_tag(:span, RUSSIAN_LOWERCASE_ALPHABET[0]) 

的Ruby 1.9.2确实如预期(我看到在浏览器中的字母),而使用Ruby工作1.8.7(我的生产环境)我看到一个数字(例如320)。

我试图将其更改为:

content_tag(:span, RUSSIAN_LOWERCASE_ALPHABET[0..0]) 

,但它并没有帮助(我看到一个问号钻石代替)。

我该如何解决这个问题?

回答

2

在Rails你有Multibyte支持,只需将您的字符串从Rails的包装类:

RUSSIAN_LOWERCASE_ALPHABET = "...".mb_chars 

,然后你可以用RUSSIAN_LOWERCASE_ALPHABET[0]选择字符。

+0

有关Multibyte支持的提示!非常感谢! –

相关问题