我无法使用ěščřžýáíé
类中的方法write(int b)
编写特殊字符OutputStream
来解决我的问题。我使用此类将控制台输出重定向到JTextArea
。
class CustomOutputStream extends OutputStream {
private JTextArea textArea;
CustomOutputStream(JTextArea textArea) {
this.textArea = textArea;
}
@Override
public void write(int b) {
textArea.append(String.valueOf((char) b));
// scrolls the text area to the end of data
textArea.setCaretPosition(textArea.getDocument().getLength());
}
}
它适用于标准字符。对于字符ěščřžýáíé
,它会打印不可读的字符。
我不知道如何设置字符编码或如何通过其他方式解决此问题。
谢谢你,J。
答案 0 :(得分:0)
您将b
int
转换为char
类型,因此您丢失了大部分信息。并且您没有将b
解释为unicode代码点。
textArea.append(Character.toChars(b))
如果原始文本不是Unicode,则可以对其进行解码。