kakasiを使って、文字列の単語分割、ひらがな変換を行っているのですが、文字コードに苦しめられております。
【 解決したいこと 】
入出力において、UTF8で表示したい
Java上でkakasiを呼び出し、その結果をEclipseで出力したいのですが、どうしても文字化けしてしまい困っています。
Eclipseの出力結果(実行構成→共通)は確かにUTF-8になっているので、Eclipseの設定間違いという線は無いと思います。
kakasi
http://kakasi.namazu.org/index.html.ja
【 ソースコード 】
ごめんなさい、補足です。
cmdは他関数から指定できるようにしていまして、今回で言うと、cmdには w が入っています。
lang
1String command = "cmd.exe /c echo " + returnString + " | kakasi -" + cmd + " -i utf-8 -o utf-8"; 2System.out.println(command); 3Runtime rt = Runtime.getRuntime(); 4Process proc = null; 5try { 6 proc = rt.exec(command); // 文字コードが狂わされてる(と睨んだ) 7} catch (IOException e1) { 8 // TODO 自動生成された catch ブロック 9 e1.printStackTrace(); 10} 11 12InputStream is = proc.getInputStream(); 13BufferedReader in = new BufferedReader(new InputStreamReader(is)); 14String line = null; 15try { 16 while ((line = in.readLine()) != null) { 17 System.out.println("line : " + line); 18 return line; 19 } 20} catch (IOException e) { 21 // TODO 自動生成された catch ブロック 22 e.printStackTrace(); 23} 24return null;
【 実行結果 】
cmd.exe /c echo 入力テスト | kakasi -w -i utf-8 -o utf-8
line : �(I|(B�(IM(B�e�X�g
【 解決したいこと 】
入出力において、UTF-8で表示したい
実際に実行した結果として以下のようになれば成功です。
cmd.exe /c echo 入力テスト | kakasi -w -i utf-8 -o utf-8
line : 入力 テスト
ちなみに、Java上ではなく、直接端末で動かしたときの結果がこちらです。
……まぁ、端末上では文字コードShift-Jisになってるので、文字化けしても仕方ないですが…
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー