Структура арабских букв в Юникоде - PullRequest
0 голосов
/ 29 сентября 2019

Я получил две разные "версии" арабских букв в Википедии. первый пример , кажется, состоит из 3 подкомпонентов в одном:

"ـمـ".split('').map(x => x.codePointAt(0).toString(16))
[ '640', '645', '640' ]

Нахождение этой буквы "m medial" на этой странице дает мне следующее:

ﻤ
fee4

Кодовые точки 640 и 645 - это «арабское зубчатое колесо» ـ и «арабское буквенное обозначение» م.Какого черта?Как это работает?До сих пор я не вижу в информации на арабском языке Unicode информации о том, как эти глифы «составлены».Почему он состоит из этих частей?Есть ли шаблон для структуры всех глифов?(Все глифы на первой странице Википедии похожи, но на втором они представляют собой одну кодовую точку).Где я могу найти информацию о том, как эффективно анализировать символы на арабском (или на любом другом языке)?

1 Ответ

1 голос
/ 29 сентября 2019

арабский язык - скрипт со скорописным объединением;форма букв меняется в зависимости от того, встречаются ли они изначально, медиально или в конце слова.Иногда вам может потребоваться отображать эти контекстные формы изолированно, например, просто для того, чтобы показать, как они выглядят.

Рекомендованным способом решения этой проблемы является использование специальных символов, вызывающих соединение, для букв, к которым нужно подключиться.Одним из них является tatweel (также называемый kashida ), который представляет собой короткий отрезок линии с «клеем» на каждом конце.Поэтому, если вы окружите букву م символом татвела с обеих сторон, средство визуализации текста автоматически выберет его медиальную форму, как если бы оно произошло в середине слова (ـمـ).Базовый символьный код م не изменяется, только его видимый глиф.

Однако по историческим причинам Unicode также содержит большой набор так называемых форм представления для арабского языка.Они представляют те же контекстные формы букв, но в виде отдельных кодов символов, которые не меняются в зависимости от их окружения;размещение «изолированной» формы представления م между двумя зубцами не влияет на его внешний вид, например: 100

Не рекомендуется использовать эти формы представления для фактического написания арабского языка.Они существуют исключительно для совместимости со старыми унаследованными кодировками и не нужны для правильного набора текста на арабском языке.Я предполагаю, что Википедия просто использовала их в демонстрационных целях и чтобы показать, что они существуют.Если вы сталкиваетесь с формами представления, вы обычно можете применить к строке нормализацию Юникода (NFKD или NFKC), чтобы получить базовые базовые буквы.См. Unicode FAQ в формах представления для получения дополнительной информации.

...