Давненько я не пользовался паскалем. Последний раз, лет десять назад, здесь был полный бардак со строками, а поддержка юникода была очень фрагментарной и спорной.
Недавно решил тряхнуть стариной и посмотреть что новенького. Общее впечатление очень положительное. Строки, в большинстве своем, приведены к общему знаменателю. С юникодом тоже все стало сильно лучше, хотя некоторый разброд все еще наблюдается. Есть функции для изменения регистра, поиска, замены, сравнения (реализации местами спорные, но в первом приближении работают). Единственное, чего реально не хватает для нормальной работы - нормализация.
В unicodedata есть функция NormalizeNFD, но этого явно недостаточно. Три другие формы нормализации тоже нужны.
Из внешних вроде есть биндинги icu4pas неизвестной свежести и очень несвежий UTF8_Tools (переписанный на паскале с рядом дополнений utf8proc). Судя по тому, что даже относительно свежие примеры из вики (из другой области) потребовали некоторой доработки, напильник для этих библиотек однозначно понадобится.
В общем, чем посоветуете пользоваться для нормализации и не пропустил ли я чего?
Unicode normalization
Модератор: Модераторы
Тоже непротив если кто разьяснит эту тему))
Кто бы ещё разъяснил доступным языком, что такое нормализация... 
Vadim писал(а):Кто бы ещё разъяснил доступным языком, что такое нормализация...
Буквы с разными добавочными закорючками, типа "ё" или "й" в юникоде могут быть представлены несколькими способами: одним "числом" или несколькими "числами" (одно на базовую букву "е", "и", и закорючки отдельными "числами"). Внимание вопрос, а как сравнить две строки, в которых эти буквы представлены по разному? Вот чтобы привести все строки к одному виду и существует нормализация. Все такие буквы заменяются либо "склеенными", либо "разделенными" представлениями. См. примеры в википедии. https://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4#%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8
Если буквы не из IBM866 не использовать, то и никакая нормализация не нужна
Тем более, что их и на клавиатуре нету.
