Есть две проблемы: одна в системе вывода (средство визуализации шрифтов), которая не знает тайский язык, и одна в системе ввода, которая сгенерировала этот текст.
Если бы вы выполнили домашнее задание, вы бы знали, что mai tho и maitaikhu (имена UniCode) - это то, что UniCode называет непространственными маркерами (NSM). Это означает, что средство отображения шрифта не должно перемещаться к следующей символьной ячейке при отображении этого символа.
Чтобы избежать беспорядка, который вы видите выше, Консорциум Thai API (TAPIC) разработал стандарт WTT 2.0, который описывает как алгоритм рендеринга шрифта должен обрабатывать тайский порядок букв при его получении в качестве входных данных, а также как метод ввода следует разрешить ввод таких символов, если вы пытаетесь их ввести.
Обзор стандартизации и реализации тайского языка
libthai включает методы ввода и вывода.
thaicheck - небольшая программа, которая может обнаруживать проблемы с последовательностью букв и исправлять их.
Между прочим, у вас не может быть последовательности (слова) do dek, mai tho и maitaikhu; входная последовательность - шум.
Имейте в виду, что некоторые редакторы имеют неработающие методы ввода, которые позволяют вводить несколько NSM, которые нельзя комбинировать, но метод вывода будет отображать только допустимые последовательности; В результате получается недопустимая строка ввода, которая выглядит нормально для пользователя на его системе .