# Normalizer クラス

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

## はじめに

正規化とは、文字や文字列を正式に決められた表現に変換する処理のことです。 これは、検索や並べ替えなどの際に比較をするときに特に重要となります。 ただ、それだけではなく、テキストを保存する際に表記を統一するために用いることもあります。

Unicode Consortium では、 アプリケーション側でのさまざまなニーズにあわせていくつかの正規化方式を定義しています。

- Normalization Form D (NFD) - Canonical Decomposition
- Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
- Normalization Form KD (NFKD) - Compatibility Decomposition
- Normalization Form KC (NFKC) - Compatibility Decomposition followed by Canonical Composition

これらの方式は、テキストに対する変換 (transformation) のセットとして定義されます。変換 (transformation) は、アルゴリズムとデータファイルの両方で表現します。

## クラス概要

Normalizer {
/* メソッド */
public static getRawDecomposition ( string `$input` ) : string
public static isNormalized ( string `$input` [, int `$form` = Normalizer::FORM_C ] ) : bool
public static normalize ( string `$input` [, int `$form` = Normalizer::FORM_C ] ) : string
}

## 定義済み定数

以下の定数は、使用する正規化方式を定義するものです。

`Normalizer::FORM_C` (integer)
  Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
`Normalizer::FORM_D` (integer)
  Normalization Form D (NFD) - Canonical Decomposition
`Normalizer::FORM_KC` (integer)
  Normalization Form KC (NFKC) - Compatibility Decomposition, followed by Canonical Composition
`Normalizer::FORM_KD` (integer)
  Normalization Form KD (NFKD) - Compatibility Decomposition
`Normalizer::NONE` (integer)
  分解/合成を行わない
`Normalizer::OPTION_DEFAULT` (integer)
  デフォルトの正規化オプション

## 参考

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

## 目次

- Normalizer::getRawDecomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
- Normalizer::isNormalized — 渡された文字列が、指定した正規化を適用済みかどうかを調べる
- Normalizer::normalize — 渡された入力を正規化し、正規化後の文字列を返す