我正在尝试输出带有U+2588
的UTF-8完整块字符(又名PrintStream
)。输出的字符针对组成此代码点的各个字节。因此,我得到e2 96 88
为â–ˆ
。
我为UTF-8初始化PrintStream
对象,并使用PrintStream.println(String)
方法打印单个完整的块字符:
PrintStream ps = new PrintStream(System.out,
true,
"UTF-8");
ps.println("\u2588");
(这将打印我上面显示的字符。)
This page显示完整块字符的Unicode偏移量,以及组成该字符的各个十六进制字节。查找每个字节(我做了here,here和here)得出上面显示的字符。为什么PrintStream
将这些字节中的每个字节解释为一个单独的字符?
编辑:此操作针对Windows 10 Education 64位上的JDK 1.8.0更新131和JDK 11.0.1运行。我已经在Eclipse和命令行中对此进行了测试。我没有使用任何编译标志。