PrintStream выводит неправильные символы для кодировки UTF-8 - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь вывести символ полного блока 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 и через командную строку.Я не использовал флаги компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...