Я пытаюсь получить лигатуры Devanagari (в строках Unicode), правильно отображаемые в Mac OS X 10.6.
Строки рисуются на JComponent
и принимают RenderingHints
для сглаживания. Лигатуры отображаются правильно в Windows XP с пакетом обновления 2 (SP2) и 7 (Ubuntu), но в Mac OS X лигатуры разлагаются (или, вернее, не сливаются правильно), диакритики отходят от своих позиций и т.д. (См. Скриншоты ниже, правильный пример рендеринга с Win XP SP2 слева (с помощью RenderingHints
Клавиша сглаживания ON
), неправильный пример рендеринга из Mac OS X 10.6.7 справа (Антилечение DEFAULT
= OFF
).
Я установил шрифт следующим образом, поэтому он должен использовать шрифт по умолчанию в любой системе:
new Font(null,Font.PLAIN,20);
Я считаю, что все это может иметь отношение к тому факту, что кодировка символов по умолчанию на компьютерах Mac - это MacRoman (не подмножество UTF-8), а другие системы (например, Windows) используют подмножество UTF-8 (например, WinLatin-1) или cp1252 или такой.
Даже имея эту информацию, я в темноте о том, как справиться с этой проблемой. Поэтому я был бы очень благодарен, если бы кто-то смог указать мне в правильном направлении.
Я уже несколько раз пробовал:
- Настройка шрифта на Devanagari MT не решила проблему.
-
TextAttribute
LIGATURES_ON
не решила проблему.
Я был бы чрезвычайно благодарен за любые подсказки или фрагменты кода других разработчиков (желательно с фоном хинди, который развивается на Mac).