プログラミング ncurses 日本語対応

まず、

include <ncurses.h>
#include <locale.h>
main(){
        setlocale(LC_ALL,"");
        initscr();
        addstr("hogehoge");
        refresh();
        sleep(1);
        endwin();
}

というコードをかく。
gcc hoge.c -lncurses -I/usr/local/include/ncurses/
としてやると、もちろんなんの問題もなくコンパイルできる。
動作も問題ない。
次に、LANG=ja_JP.SJIS
に設定して、

include <ncurses.h>
#include <locale.h>
main(){
        setlocale(LC_ALL,"");
        initscr();
        addstr("ほげほげ");
        refresh();
        sleep(1);
        endwin();
}

とやり、gcc hoge.c -lncurses -I/usr/local/include/ncurses/
すると、文字化けする。
次にLANG=ja_JP.eucJP
とやり、コードの"ほげほげ"を書き直して、
gcc hoge.c -lncurses -I/usr/local/include/ncurses/とやると、
文字化けせず無事に実行できる。
次に、ja_JP.utf8
とやり、コードの"ほげほげ"を書き直して、
gcc hoge.c -lncurses -I/usr/local/include/ncurses/とやると、
文字化けする。
次に
ncursesをダウンロードしてきて
./configure --prefix=$HOME --enable-widec
というオプションをつけてコンパイル
ホームディレクトリ以下にインストールする。

<ncursesw/ncurses.h>
#include <locale.h>
main(){
        setlocale(LC_ALL,"");
        initscr();
        addstr("ほげほげ");
        refresh();
        sleep(1);
        endwin();
}

とやり、LANG=ja_JP.SJIS
にして、"ほげほげ"を書き直して、
にしてgcc hoge.c -L/home/hugahuga/lib/ -lncursesw -I/home/hugahuga/include/
すると、文字化け無く実行できる。
次にLANG=ja_JP.eucJP
とやり、コードの"ほげほげ"を書き直して、
gcc hoge.c -L/home/hugahuga/lib/ -lncursesw -I/home/hugahuga/include/とやると、
文字化け無く実行できる。
次に、LANG=ja_JP.utf8
とやり、コードの"ほげほげ"を書き直して、
gcc hoge.c -L/home/hugahuga/lib/ -lncursesw -I/home/hugahuga/include/とやると、
文字化け無く実行できる。
こんな感じ。