ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

WindowsのCabochaをJavaからexecで使う が 文字化け

WindowsでCabochaをJAVAから使いたい.しかし,Java用のライブラリがないので,execでCabochaを叩いてみる.

String cabochaPath = "C:\\Program Files\\CaboCha\\bin\\cabocha.exe";
String command     = cabochaPath;
Process process    = null;
try {
    process = Runtime.getRuntime().exec(command);
    OutputStream out= process.getOutputStream();
    OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");
    writer.write("ほげを参照");
    writer.close();
    InputStream is = process.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    process.destroy();
    process.waitFor();
} catch( Exception e ) {
    System.out.println(e);
}

出力結果

ほげを参�-D
             ��
EOS

文字化ける.
Shift-JISかもしれないと思ってShit-JISにして見たけど余計文字化けた.解析結果がおかしすぎるから,Cabochaに渡してる時点でおかしいのかなぁ.

<追記>
と,思ったら,OutputStreamWriterと,InputStreamReader両方ともShift-JISにしたらいけた.そういう意味なんすね,InputStreamReadeって.
よくよく考えなくても,指定する文字コードが一個しかない時点でわかるべきだった.