Что такое нормализация Unicode?

Есть в классе String такой метод, isNormalized, который проверяет нормализована ли строка по Юникоду. Что означает нормализация по Юникоду?

В Юникоде есть 4 вида нормализации, но самое популярное - это композиция и декомпозиция.

Композиция - это объединение нескольких букв в одну по возможности. Когда у нас есть, например, буква "Й", у неё есть 2 части, сама буква и черта над ней. С помощью композиции мы объеденяем эти 2 символа в один, и получаем в результате целую букву.

Декомпозиция - это разбиение буквы на модификаторы. Тот же самый процесс, только наоборот.