# Класс Normalizer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

## Введение

Нормализация — процесс преобразования символов и их последовательностей в формальное представление более низкого уровня. Этот процесс крайне важен при сравнении строк при сортировке или при поиске, но также используется при сохранении текста, чтобы быть уверенным в том, что он сохранился корректно.

Консорциум Unicode определил несколько форм нормализации, отражающих разные потребности приложений:

- Normalization Form D (NFD) — Каноническое разложение
- Normalization Form C (NFC) — Каноническое разложение с последующей канонической сборкой
- Normalization Form KD (NFKD) — Совместимое разложение
- Normalization Form KC (NFKC) — Совместимое разложение с последующей канонической сборкой

Различные формы задаются в требованиях наборов преобразований текста. Преобразования вычисляются с алгоритма и набора файлов данных.

## Обзор класса

class Normalizer {
/* Константы */
public const int FORM_D;
public const int NFD;
public const int FORM_KD;
public const int NFKD;
public const int FORM_C;
public const int NFC;
public const int FORM_KC;
public const int NFKC;
public const int FORM_KC_CF;
public const int NFKC_CF;
/* Методы */
public static function getRawDecomposition(string `$string`, int `$form` = `Normalizer::FORM_C`): ?string
public static function isNormalized(string `$string`, int `$form` = `Normalizer::FORM_C`): bool
public static function normalize(string `$string`, int `$form` = `Normalizer::FORM_C`): string|false
}

## Предопределённые константы

Константы устанавливают форму нормализации, которую использует нормализатор:

`Normalizer::FORM_C` int
  Форма нормализации C (NFC) — Каноническое разложение, после которого каноническая сборка
`Normalizer::FORM_D` int
  Форма нормализации D (NFD) — Каноническое разложение
`Normalizer::NFD` int

`Normalizer::FORM_KC` int
  Форма нормализации KC (NFKC) — Совместимое разложение, после которого каноническая сборка
`Normalizer::NFKC` int

`Normalizer::FORM_KC_CF` int

`Normalizer::FORM_KD` int
  Форма нормализации KD (NFKD) — Совместимое разложение
`Normalizer::NFKD` int

`Normalizer::NFC` int

`Normalizer::NFKC_CF` int

## Смотрите также

- » Нормализация Unicode
- » Нормализация Unicode. FAQ
- » ICU Руководство пользователя — нормализация
- » ICU Описание API — нормализация

## Список изменений

Версия | Описание
--- | ---
8.4.0 | Константы класса стали типизированными.
8.0.0 | Константу `Normalizer::NONE` удалили.

## Содержание

- Normalizer::getRawDecomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
- Normalizer::isNormalized — Проверить, соответствует ли переданная строка заданной форме нормализации
- Normalizer::normalize — Нормализация строки

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open