Jak przekierować wszystkie dane wyjściowe konsoli do Swing JTextArea / JTextPane z odpowiednim kodowaniem?

Próbowałem przekierować System.out PrintStream do JTextPane. Działa to dobrze, z wyjątkiem kodowania specjalnych znaków regionalnych. Znalazłem dużo dokumentacji na ten temat (patrz np.strona kodowania mindprod), ale wciąż walczę z tym. Podobne pytania zostały opublikowane w StackOverFlow, ale kodowanie nie zostało zaadresowane tak daleko, jak widziałem.

Pierwsze rozwiązanie:

String sUtf = new String(s.getBytes("cp1252"),"UTF-8");

Drugie rozwiązanie powinno używać java.nio. Nie rozumiem, jak używać zestawu znaków.

Charset defaultCharset = Charset.defaultCharset() ;
byte[] b = s.getBytes();
Charset cs = Charset.forName("UTF-8");
ByteBuffer bb = ByteBuffer.wrap( b );
CharBuffer cb = cs.decode( bb );
String stringUtf = cb.toString();
myTextPane.text = stringUtf

Żadne rozwiązanie nie działa. Dowolny pomysł?

Z góry dziękuję, jgran

questionAnswers(4)

yourAnswerToTheQuestion