System.out.println(sb);
问题是上面的线。这将使用默认系统编码对字符数据进行编码,并将数据发送到STDOUT。在许多系统上,这是一个有损过程。
如果更改默认值,System.out
则控制台使用的编码和控制台使用的编码必须匹配。
更改默认系统编码的唯一受支持机制是通过操作系统。 _(有些人建议使用file.encoding
system属性,但不建议这样做,并且可能会有意想不到的副作用。)_您可以将setOut用作自己的自定义PrintStream
:
PrintStream stdout = new PrintStream(System.out, autoFlush, encoding);
您可以通过Run配置更改Eclipse控制台编码。