Арабская письменность всегда плохо вписывалась в цифровой мир. Всё началось с книгопечатания. Рукописное арабское письмо прекрасно работало пером и тушью, лигатуры и соединения букв были естественны. Но в эпоху movable type (подвижных литер) возникли проблемы. Латинский шрифт легко разбивается на отдельные буквы-штампы. Арабский же пишется не побуквенно, а блоками: слово المعروف состоит из четырёх блоков, а не из пяти букв, причём внутри блоков есть сложные лигатуры (лам над мимом). Ранние печатные станки, например у Brill Publishers около 1890 года, ставили каждую букву отдельно. Это делало текст неровным, с неестественными пробелами. Позже пробелы убрали, но негибкость осталась: издатели стали использовать меньше лигатур.
Компьютеры сделали только хуже. Философия movable type перекочевала в цифру: текст делят на отдельные символы. Арабы пишут слитно, но компьютер легко отображает буквы по отдельности. Пример — неудачная татуировка с арабским переводом фразы «what doesn’t kill you makes you stronger», где буквы не соединены. Проблема усугубляется направлением письма (справа налево) — в аэропорту Балтимор-Вашингтон буквы отображаются в обратном порядке. Ещё одна головная боль — кодировка. Скопировав слово hādhihi из PDF и вставив в поиск, получаешь совсем другую строку символов. Поиск по слову كشف в документе, где оно точно есть, ничего не находит. А при выделении результата поиска жирным шрифтом рвутся связки между буквами.
Проблемы попытались решить с помощью Unicode. Это общая таблица символов, где каждой букве присвоен уникальный номер. Теоретически это разделяет символ (абстрактную букву) и глиф (её отображение). Для китайского, японского и корейского (CJK) это сработало: иероглиф един, а шрифт решает, как его рисовать. Для арабского могли бы сделать похоже: отделить основу (rasm) от диакритики. Но вместо этого Unicode закодировал арабские буквы по отдельности, как в латинице. Ta marbūṭa (ha с двумя точками) стала отдельным символом, а не вариантом ha. Из-за этого поиск слов كثيره и كثيرة выдаёт разные результаты, хотя это одно и то же. Алиф с хамзой можно записать одним символом (U+0623) или комбинацией алифа и высокого хамзы (U+0627 + U+0654). Визуально это одно и то же, но компьютер считает их разными. Наконец, у kāf есть отдельный код для арабского (U+0643) и для персидского (U+06A9), хотя это просто вариации одной буквы. Итого: Unicode не решил старых проблем печати, а добавил новых. Мы живём в мире, где за корректное отображение арабского текста приходится бороться.