#unicode #internationalization #unicode-string #unicode-normalization #case-folding
#юникод #интернационализация #unicode-строка #unicode-нормализация #сворачивание регистра
Вопрос:
Unicode подчеркивает, что программное обеспечение должно быть максимально совместимым с прямой передачей, по умолчанию обрабатывая неназначенные символы так, как если бы они были кодовой точкой частного использования. Это хорошо работает в большинстве случаев, поскольку большинство новых символов не меняются при нормализации, сложении регистра и т. Д.
Тем не менее, я хочу проанализировать изменения, нарушающие нормализацию, в Юникоде: символы, которые имеют свойства, которые могут привести к изменениям при применении нормализации NFx, NFKx, casefold или NFKC_Casefold. Я не уверен на 100% в своем понимании алгоритмов NFC или NFKC, и я считаю, что произошли некоторые изменения в стабильности, которые ограничивают количество особых случаев. Я могу ограничить свой анализ Юникодом 4, 5 или даже 6, если это означает, что не нужно иметь дело с особыми случаями.
Мой первоначальный шаг при этом анализирует базу данных символов XML Unicode и выбирает кодовые точки на основе канонического комбинирующего класса) ( ccc != 0
), быстрой проверки NFxy ( NFC_QC != 'Y'
, NFD_QC != 'Y'
, и т. Д.) И свойств casefolding / NFKC_Casefold ( CWKCF = 'Y' or CWCF = 'Y'
) .
Это лучший подход, или я должен просто смотреть на отображение и тип декомпозиции?