Как получить i-го персонажа из строки utf-8 в Ruby 1.8.7? - PullRequest
2 голосов
/ 31 августа 2011

Учитывая следующую константу:

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])

, но это нене помогаю (вместо этого я вижу вопросительный знак в ромбе).

Как я могу решить эту проблему?

1 Ответ

2 голосов
/ 31 августа 2011

В Rails у вас есть поддержка Multibyte , просто преобразуйте вашу строку в класс-оболочку из Rails:

RUSSIAN_LOWERCASE_ALPHABET = "...".mb_chars

и затем вы можете выбрать символ с помощью RUSSIAN_LOWERCASE_ALPHABET[0].

...