Java, юникод и шрифты

Я просмотрел документацию по java и поискал в сети информацию о поддержке Java для международных символов с определенными шрифтами (такими как Monospace), но не смог получить четкого конкретного ответа.

Произошло изменение между java 1.4 и java 1.5 / 1.6. Например, в java 1.4, если вы установите шрифт в JTextArea на Monospace, он не сможет обрабатывать посторонние символы (вместо этого получите прямоугольники), но в java 1.5 / 1.6 он, похоже, работает нормально.

Эти различия / улучшенная поддержка четко задокументированы где-нибудь?

Спасибо

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
2 035
2

Ответы 2

От Улучшения интернационализации:

Multilingual Text Rendering

To render multilingual text, using logical fonts, 2D now takes advantage of installed host OS fonts for all supported writing systems. For example, if you run in a Thai locale environment, but have Korean fonts installed, both Thai and Korean are rendered. The JRE now also automatically detects physical fonts that are installed into its lib/fonts/fallback directory and adds these physical fonts to all logical fonts for 2D rendering.

Use of Unicode APIs on Windows

AWT now uses the Unicode APIs on Windows 2000/XP. As a result, some of its components can handle text without being restricted by Windows locale settings. For example, AWT text components can accept and display text in the Devanagari writing system regardless of the Windows locale settings. (emphasis mine)

Насколько «чужеродны» эти персонажи? Большинство шрифтов на основе латиницы могут обрабатывать, по крайней мере, буквы с диакритическими знаками и другие символы в верхней половине ISO-8859-1, но я не думаю, что вы можете разумно рассчитывать на поддержку чего-либо, кроме этого.

Лучше всего, чтобы пользователь мог выбирать из списка поддерживаемых шрифтов, который вы извлекаете из базовой ОС. Если не можете или не хотите, вы можете воспользоваться подходом CSS: перебрать список приемлемых шрифтов и использовать первый установленный.

Чтобы заполнить список, просто введите в Google "шрифты для программистов" или "моноширинные шрифты". Мне никогда не нравились логические шрифты Java, особенно Monospace, то есть Courier или Courier New для Windows. Я перестал его использовать много лет назад.

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