2011-06-27 33 views
3

我有代码等使用串[范围] = new_val而在红宝石尊重UTF8 1.8.7

text[from..to] = text_insertion 

的问题是,fromto给出计数UTF8编码的字符作为一个字符而上述计数的代码逐字节用Ruby 1.8.7

我不得不使用Ruby 1.8.7

我可以使用哪种宝石使我的工作?我也可以重写它使用String#substr或类似的东西,但我还没有找到任何lib给我的方法,尊重UTF8编码。

回答

2

您可以使用ActiveSupport的String#mb_chars方法。它让你写这样的事情:

text.mb_chars[from..to] = text_insertion 

它是自2.2以来的所有版本的ActiveSupport中可用。