Olá.
Estou direcionando a saída do meu console para um JTextArea, o problema se encontra em caracteres com acentos. Eles aparecem como caracteres desconhecidos.
Estou usando um OutputStream personalizado para fazer o direcionamento da saída do console, chamado DocumentOutputStream.
E estou setando ele no meu JTextArea jtaOut, assim:
DocumentOutputStream dosOut = new DocumentOutputStream(jtaOut.getDocument());
DocumentOutputStream dosErr = new DocumentOutputStream(jtaOut.getDocument());
System.setOut(new PrintStream(dosOut));
System.setErr(new PrintStream(dosErr));
Dentro do DocumentOutputStream, estou sobrescrevendo o método write(byte [] bytes) assim:
@Override
public void write(byte[] bytes) throws IOException {
StringBuffer buffer = new StringBuffer();
for (byte b : bytes) buffer.append((char)b);
try {
_document.insertString(_offset, buffer.toString()
, new SimpleAttributeSet()
);
_offset += buffer.length();
} catch (BadLocationException ex) {
new IOException(ex);
}
}
E assim, no JTextArea não saem caracteres com acentos, nem cedilhas. Alguem saberia me ajudar?
Desde já, obrigado.