Curses モジュールを使って UTF-8 エンコーディングの文字列を表示しようとすると文字化けしてしまう問題 (Ruby)
Ruby の Curses モジュール を使って以下のような日本語を表示させるプログラムを実行させたところ、端末上には文字化けした状態で表示されてしまいました。
#! ruby -EUTF-8 # coding: UTF-8 require 'curses' Curses.init_screen begin win = Curses.stdscr.subwin(5,30,2,2) win.box(?|,?-,?*) win.setpos(2,2) win.addstr("subwindow です") win.refresh Curses.getch ensure Curses.close_screen end
解決方法
I don't know the exact steps, but I've heard people say that they had to recompile Ruby using libncursesw5-dev to get Unicode to work as expected.
ruby - How to display unicode characters using curses? - Stack Overflow
libncursesw5-dev パッケージを apt-get でインストールした後に、Ruby をビルドしなおしたところ、UTF-8 文字列もちゃんと表示できるようになりました。
# libncursesw5-dev のインストール $ apt-get install libncursesw5-dev # ruby の再ビルド $ rvm reinstall ruby-1.9.3