【问题标题】:Using string[range]=new_val while respecting UTF8 in Ruby 1.8.7在 Ruby 1.8.7 中尊重 UTF8 时使用 string[range]=new_val
【发布时间】:2011-09-23 09:58:50
【问题描述】:

我有类似的代码

text[from..to] = text_insertion

问题在于 fromto 被赋予将 UTF8 编码的字符计数为一个字符,而上面的代码在 Ruby 1.8.7 中按字节计数

我必须使用 Ruby 1.8.7

我可以使用哪个 gem 来使我的代码正常工作?我也可以重写它以使用 String#substr 或类似的东西,但我还没有找到任何库,它可以为我提供尊重 UTF8 编码的方法。

【问题讨论】:

    标签: ruby string utf-8 ruby-1.8


    【解决方案1】:

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

    text.mb_chars[from..to] = text_insertion
    

    它在 ActiveSupport 2.2 以后的所有版本中都可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多