Я пытаюсь вывести символ полного блока UTF-8 (он же U+2588
) с PrintStream
.Выводимые символы предназначены для отдельных байтов, составляющих эту кодовую точку.Таким образом, я получаю e2 96 88
как â–ˆ
.
. Я инициализирую объект PrintStream
для UTF-8 и печатаю один символ полного блока с помощью метода PrintStream.println(String)
:
PrintStream ps = new PrintStream(System.out,
true,
"UTF-8");
ps.println("\u2588");
* 1011.* (Это печатает символы, которые я показал выше.)
Эта страница показывает полное смещение Unicode символа блока, а также отдельные шестнадцатеричные байты, которые составляют символ.Поиск каждого из этих байтов (который я сделал здесь , здесь и здесь ) дает символы, показанные выше.Почему каждый из этих байтов интерпретируется как PrintStream
?
РЕДАКТИРОВАТЬ как отдельный символ: Это выполнялось как для версии 131 JDK 1.8.0, так и для версии JDK 11.0.1 в Windows 10 Education 64немного.Я проверил это в Eclipse и через командную строку.Я не использовал флаги компиляции.