Почему шрифт "Courier New" не имеет всех символов Юникода с одинаковой шириной?

У меня есть представление hexdump в моем приложении: введите описание изображения здесь

Я использую шрифт Courier New в Java:

private final Text contentText;

contentText.setFont(Font.font("Courier New"));

Но, как вы можете видеть, некоторые знаки Юникода имеют большую ширину. Есть тот или иной шрифт, который делает все знаки с одинаковой шириной?

1 ответ

Вы видите результаты аварийного восстановления шрифта, который заменяет что-то отличное от оригинального шрифта, который вы указали, когда пытаетесь отобразить символы, которых нет в этом шрифте. В этом случае кана и некоторые другие символы (Won sign, другие) отсутствуют в Courier New, поэтому вы получаете другой шрифт, метрики которого не совпадают с метриками Courier New.

Простого решения этого не существует, особенно если вы ожидаете отображать широкий спектр символов. Что вы можете сделать, это настроить фильтр, как это делают многие шестнадцатеричные редакторы, и просто показать "." или аналогичный для чего-либо, не относящегося к ASCII (или в этом случае вы можете выполнить небольшую детективную работу и настроить ее на показ "." для всего, что отсутствует в шрифте Courier New).

Другие вопросы по тегам