2012年4月12日木曜日

Playframeworkでコンソール文字化け

Windows + Playframeworkで開発しているともれなく、コマンドプロンプトでの日本語表示が化けると思うんだけど、何故か検索してもまったく情報がひっかからない。
なんでだろ???

皆Windowsで開発していないのかな?

とりあえず回避方法は以下です。

1、System.out(err).printlnの文字化け回避
OnApplicationStartのJobを作成してそこでSystem.outとerrを差し替えます。

@OnApplicationStart
public class ConsoleLog extends Job {

    private boolean consoleSetuped;

    public void doJob() {
        if (!consoleSetuped) {
            try {
                PrintStream ps = new PrintStream(System.out, true, "MS932");
                System.setOut(ps);
                System.setErr(ps);
            } catch (UnsupportedEncodingException e) {
                //not occur
            }
            consoleSetuped = true;
        }
    }
}

2、Loggerでの文字化け回避
log4j.propertiesに

log4j.appender.Console.encoding=MS932

を追加

いじょ。

0 件のコメント:

コメントを投稿