сложное расположение текста в индийских скриптах - PullRequest
2 голосов
/ 05 декабря 2010

Я использую шрифты TrueType Unicode для телугу. Я хочу ввести последовательность символов Unicode в диапазоне, указанном для телугу, и использовать функции Java для отображения соответствующих букв. Какая часть Java обрабатывает разбиение последовательности на кластеры? Я считаю, что в Windows UNISCRIBE это делает. Я хотел бы знать, есть ли в Java что-то похожее на это
sivachander

Ответы [ 3 ]

1 голос
/ 05 декабря 2010

Если я правильно понимаю, вы ищете BreakIterator.getCharacterInstance .

Из документации:

Анализ границ символов позволяет пользователям взаимодействовать ссимволы, как они ожидают, например, при перемещении курсора по текстовой строке.Анализ границ символов обеспечивает правильную навигацию по строкам символов независимо от того, как хранится символ.Возвращаемые границы могут быть границами дополнительных символов, объединяющих последовательности символов или лигатурных кластеров.Например, акцентированный символ может быть сохранен как базовый символ и диакритический знак.То, что пользователи считают персонажем, может отличаться в зависимости от языка.

0 голосов
/ 18 октября 2012

если вы не разрабатываете новый шрифт, вам не нужно знать, как java отображает глифы на основе кодовых точек юникода.

Где бы ни ожидалась строка, вы можете передать последовательность юникодакодовые точки, и java отображает их правильно (гласные, согласные, диакритические знаки на согласных, согласное смешение).Вот пример

g.drawString ("\ u0C36 \ u0C3F \ u0C35 \ u0C1C \ u0C3E \ u0C38 \ u0C4D \ u0C24 \ u0C3F", 75 100);

0 голосов
/ 05 декабря 2010

Java полагается на базовые библиотеки для своих процедур отображения, но если вы хотите более жесткий контроль над ними, java-gnome имеет привязки для Каира и Pango.

...