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

Rails コードベースからActiveSupport::CoreExtensions::String::Unicodeモジュールを含めてみることができます。

于 2008-09-28T14:48:28.533 に答える
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 に答える