# La classe Normalizer

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

## Introduction

La normalisation est un processus qui implique la transformation de caractères et de séquences de caractères dans une représentation formelle. Ce processus est important quand des textes doivent être comparés à des fins de tri et de recherche, mais il est aussi important pour le stockage des données, afin que les documents soient cohérents.

Le consortium Unicode Consortium a défini un nombre de formes de normalisations pour refléter les différents besoins des applications :

- Normalization Form D (NFD) : décomposition canonique
- Normalization Form C (NFC) : décomposition canonique, suivie d'une composition canonique
- Normalization Form KD (NFKD) : décomposition compatible
- Normalization Form KC (NFKC) : décomposition compatible suivi d'une composition canonique

Les différentes formes sont définies en terme de transformations de texte, transformations qui sont exprimées avec des algorithmes et des fichiers de données.

## Synopsis de la classe

class Normalizer {
/* Constantes */
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;
/* Méthodes */
public static getRawDecomposition(string `$string`, int `$form` = Normalizer::FORM_C): ?string
public static isNormalized(string `$string`, int `$form` = Normalizer::FORM_C): bool
public static normalize(string `$string`, int `$form` = Normalizer::FORM_C): string|false
}

## Constantes pré-définies

Les constantes suivantes définissent les formes de normalisation à appliquer par le normalizer :

`Normalizer::FORM_C` int
  Normalization Form C (NFC) : décomposition canonique suivie d'une composition canonique
`Normalizer::FORM_D` int
  Normalization Form D (NFD) : décomposition canonique
`Normalizer::NFD` int

`Normalizer::FORM_KC` int
  Normalization Form KC (NFKC) : décomposition compatible, suivie d'une composition canonique
`Normalizer::NFKC` int

`Normalizer::FORM_KC_CF` int

`Normalizer::FORM_KD` int
  Normalization Form KD (NFKD) : décomposition compatible
`Normalizer::NFKD` int

`Normalizer::NFC` int

`Normalizer::NFKC_CF` int

## Voir aussi

- » Unicode Normalization
- » Unicode Normalization FAQ
- » ICU User Guide : Normalization
- » ICU API Reference : Normalization

## Historique

Version | Description
--- | ---
8.4.0 | Les constantes de classe sont maintenant typées.
8.0.0 | `Normalizer::NONE` a été supprimé.

## Sommaire

- Normalizer::getRawDecomposition — Renvoie la propriété Decomposition_Mapping pour le point de code UTF-8 donné
- Normalizer::isNormalized — Vérifie si une chaîne est normalisée
- Normalizer::normalize — Normalise une chaîne en entrée