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って.
よくよく考えなくても,指定する文字コードが一個しかない時点でわかるべきだった.