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

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

3 голосов
/ 27 сентября 2008

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

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

Четко ли задокументированы эти различия / улучшенная поддержка?

Спасибо

Ответы [ 2 ]

2 голосов
/ 27 сентября 2008

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

Многоязычный рендеринг текста

Для визуализации многоязычного текста с использованием логических шрифтов 2D теперь использует преимущества установленных шрифтов операционной системы для всех поддерживаемых систем записи. Например, если вы работаете в среде тайского языка, но у вас установлены корейские шрифты, отображаются как тайский, так и корейский языки. JRE теперь также автоматически обнаруживает физические шрифты, которые установлены в его каталоге lib / fonts / fallback, и добавляет эти физические шрифты ко всем логическим шрифтам для 2D-рендеринга.

Использование Unicode API в Windows

AWT теперь использует Unicode API в Windows 2000 / XP. В результате некоторые из его компонентов могут обрабатывать текст, не ограничиваясь настройками языкового стандарта Windows. Например, текстовые компоненты AWT могут принимать и отображать текст в системе письма Devanagari независимо от языковых настроек Windows. (выделено мной)

0 голосов
/ 27 сентября 2008

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

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

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

...