日本語(UTF-8)が通るncurses-ruby環境の構築
topぽいUIの監視ツールが作りたかったのでncursesを使ってみたけどUTF-8文字列が文字化けして表示できなかったので解決策をメモ。
ncursesはそもそもマルチバイト文字の表示に対応していないので、その対応版であるncurseswを使う必要がある。
多くのディストリビューションではそもそもこれは別パッケージとして提供されているので注意。
基本的にはncurseswはncursesとソースコードレベル互換ぽいので、ncursesのrubyバインディングであるncurses-rubyを適当にいじってncursesw野バインディングとして利用することにする。
ncurses-rubyをncurseswとコンパイル
最新版を以下のサイトからダウンロード。
http://ncurses-ruby.berlios.de/
そもそも、(2010/8/1現在)ruby1.9対応版がrubygemsにあがっていないらしくどちらにせよコンパイルする必要がある。
そしてncurseswに差し替えるために次のパッチをあてる。
http://static.nyaxtstep.com/misc/ncurses-ruby.1.2.4.extconf.patch
パッチを当てたらあとはコンパイルしてインストールするだけなのだけど、rbcursesプロジェクトでgemspecが配布されているので今回は管理にgemを用いることにする。
手順は以下のページを参考にした。
http://github.com/rkumar/rbcurse/tree/master19
$ gem build ncurses.gemspec $ sudo gem install --local ncurses-1.2.4.gem