1

我正在编写一个游戏,它接受用户输入并将其呈现在屏幕上。我为此使用的引擎完全是 unicode 友好的,所以如果可能的话,我想保留它。问题是渲染循环看起来像这样:

"string".each_byte do |c|
    render_this_letter(c)
end

我对 i18n 了解不多,但我知道上面的代码只会对我和说我的语言的人有用。我更喜欢这样的东西:

"unicode string".each_unicode_letter do |u|
    render_unicode_letter(u)
end

这是否存在于核心发行版中?我有点反对在安装中添加额外的要求,但如果这是唯一的方法,我会活下去。

为了更有趣,我无法知道该字符串是否实际上是一个 unicode 字符串。

编辑:我正在使用的库确实可以渲染整个字符串,但是我让用户编辑即时出现的内容 - 如果他们点击“退格”,基本上,我需要知道要砍掉多少字节结束.

4

2 回答 2

2

不幸的是,ruby 1.8.x 对 unicode 的支持很差。它正在 1.9 中解决。但与此同时,像这样的库 ( http://snippets.dzone.com/posts/show/4527 ) 是一个很好的解决方案。使用链接库,您的代码将如下所示:

"unicode_string".each_utf8_char do |u| 
    render_unicode_letter(u)
end
于 2008-09-27T22:23:26.030 回答
2

您可以尝试从 rails 代码库中包含ActiveSupport::CoreExtensions::String::Unicode模块。

于 2008-09-28T14:48:28.533 回答