PrintStream似乎为UTF-8编码输出了不正确的字符

时间:2019-02-08 05:33:01

标签: java utf-8 character-encoding

我正在尝试输出带有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偏移量,以及组成该字符的各个十六进制字节。查找每个字节(我做了hereherehere)得出上面显示的字符。为什么PrintStream将这些字节中的每个字节解释为一个单独的字符?

编辑:此操作针对Windows 10 Education 64位上的JDK 1.8.0更新131和JDK 11.0.1运行。我已经在Eclipse和命令行中对此进行了测试。我没有使用任何编译标志。

0 个答案:

没有答案