システムコンソールからフローを読み取ろうとしていますが、エンコーディングに問題があります。私はフランス語なので、キーボードには「é」、「è」、「à」などの特別な文字があります。
コンソールのコンテンツをテキスト領域に配置すると、次のようになります。
Le volume dans le lecteur C s'appelle DisqueC
Le num?ro de s?rie du volume est CE7........
3 fichier(s) 20?229 octets
5 R?p(s) 450?096?623?616 octets libres
特別な文字を自動的に「?」に置き換えます。サイズにも問題があります。
私はそのようなコンソールの内容を読みました:
BufferedReader stdInput = new BufferedReader(new InputStreamReader(child.getInputStream(), "UTF-8"));
BufferedReader stdError = new BufferedReader(new InputStreamReader(child.getErrorStream(), "UTF-8"));
String line;
byte[] lineBytes;
while ((line = stdInput.readLine()) != null)
{
lineBytes = line.getBytes("UTF-8");
buffer.append("\t\t" + new String(lineBytes, "UTF-8") + "\n");
}
stdInput.close();
while ((line = stdError.readLine()) != null)
{
lineBytes = line.getBytes("UTF-8");
buffer.append("\t\t" + new String(lineBytes, "UTF-8") + "\n");
}
stdError.close();
次に、バッファがソケットを介して送信され、そのようにjTextAreaに表示されます。
textArea.append(new String(console_output.getBytes(), "UTF-8"););
それで、なぜ私がエンコーディングでこの問題を抱えているのか誰かに教えてもらえますか?
ありがとう。