Unicode normalization
Добавлено: 09.11.2021 20:34:04
Давненько я не пользовался паскалем. Последний раз, лет десять назад, здесь был полный бардак со строками, а поддержка юникода была очень фрагментарной и спорной.
Недавно решил тряхнуть стариной и посмотреть что новенького. Общее впечатление очень положительное. Строки, в большинстве своем, приведены к общему знаменателю. С юникодом тоже все стало сильно лучше, хотя некоторый разброд все еще наблюдается. Есть функции для изменения регистра, поиска, замены, сравнения (реализации местами спорные, но в первом приближении работают). Единственное, чего реально не хватает для нормальной работы - нормализация.
В unicodedata есть функция NormalizeNFD, но этого явно недостаточно. Три другие формы нормализации тоже нужны.
Из внешних вроде есть биндинги icu4pas неизвестной свежести и очень несвежий UTF8_Tools (переписанный на паскале с рядом дополнений utf8proc). Судя по тому, что даже относительно свежие примеры из вики (из другой области) потребовали некоторой доработки, напильник для этих библиотек однозначно понадобится.
В общем, чем посоветуете пользоваться для нормализации и не пропустил ли я чего?
Недавно решил тряхнуть стариной и посмотреть что новенького. Общее впечатление очень положительное. Строки, в большинстве своем, приведены к общему знаменателю. С юникодом тоже все стало сильно лучше, хотя некоторый разброд все еще наблюдается. Есть функции для изменения регистра, поиска, замены, сравнения (реализации местами спорные, но в первом приближении работают). Единственное, чего реально не хватает для нормальной работы - нормализация.
В unicodedata есть функция NormalizeNFD, но этого явно недостаточно. Три другие формы нормализации тоже нужны.
Из внешних вроде есть биндинги icu4pas неизвестной свежести и очень несвежий UTF8_Tools (переписанный на паскале с рядом дополнений utf8proc). Судя по тому, что даже относительно свежие примеры из вики (из другой области) потребовали некоторой доработки, напильник для этих библиотек однозначно понадобится.
В общем, чем посоветуете пользоваться для нормализации и не пропустил ли я чего?