ruby - 在 Ruby 1.8.7 中使用 string[range]=new_val 同时尊重 UTF8

标签 ruby string utf-8 ruby-1.8

我有这样的代码

text[from..to] = text_insertion

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

我必须使用 Ruby 1.8.7

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

最佳答案

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

text.mb_chars[from..to] = text_insertion

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

关于ruby - 在 Ruby 1.8.7 中使用 string[range]=new_val 同时尊重 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491671/

相关文章:

java - 共享 GAE 数据存储、Go <-> Java、regexp.FindStringIndex 索引移位(字节索引与 utf-8-char-index)

ruby-on-rails - 在 Ruby 中获取两个日期之间的日期对象数组的最有效方法是什么?

ruby-on-rails - PostgreSQL gem 在 CentOS 6 上的 Rails 捆绑安装失败

ruby - 如何使用 Ruby 将键盘和鼠标命令发送到底层操作系统?

python 制作我自己的小写转换器

string - 按字母顺序对字符串中的字母进行排序 - SAS

python - Python 的三引号字符串是如何工作的?

mysql - 如何从 mySQL 中的字符串中提取前 2 个字符?

ruby - 如何在没有 nilcheck 的情况下将 nil 值转换为 true

python - JSON解码错误 : Unexpected UTF-8 BOM: Display problems in bash?