【问题标题】:How to get the i'th character from utf-8 String in Ruby 1.8.7?如何从 Ruby 1.8.7 中的 utf-8 字符串中获取第 i 个字符?
【发布时间】:2011-08-31 21:12:07
【问题描述】:

给定以下常量:

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

但这没有帮助(我看到的是菱形中的问号)。

我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 utf-8 ruby-1.8


    【解决方案1】:

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

    RUSSIAN_LOWERCASE_ALPHABET = "...".mb_chars
    

    然后你可以选择带有RUSSIAN_LOWERCASE_ALPHABET[0]的字符。

    【讨论】:

    • 很高兴了解多字节支持!非常感谢!
    猜你喜欢
    • 2011-07-29
    • 2012-11-10
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2014-05-11
    相关资源
    最近更新 更多