これは前の質問の繰り返しではありません。問題はプロセスにあることがわかりました。
プログラムに問題があり、JavaプロセスのInputStreamで特殊文字が失われているように見えます。
私が使用しているコードは次のとおりです。
String command = "/usr/local/bin/getTitle <URL>";
Process shellCommand = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(shellCommand.getInputStream(), "UTF-8"));
String output = null;
while ((output = stdInput.readLine()) != null) {
System.out.println(output);
}
コマンドラインから「コマンド」を実行すると、次の出力が得られます。
PSY_-_GANGNAM_STYLE_(강남스타일)_M_V
ただし、System.out.println(output);の出力。以下のとおりであります:
PSY_-_GANGNAM_STYLE_()_M_V
そして、これは私のプログラムを完全に壊します。
私は完全に困惑していて、これに関連するものは何も検索で見つかりませんでした。どんな助けでも大歓迎です!前もって感謝します。
アップデート:
次のようにコマンドを変更した場合:
String command="echo 'PSY_-_GANGNAM_STYLE_(강남스 타일)_M_V'";
次に、出力を印刷するときに、特殊文字が正しく表示されます。これは、問題がどこにあるかを理解するのに役立ちますか?