(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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)
は、アルゴリズムとデータファイルの両方で表現します。
クラス概要
class Normalizer
{
public static isNormalized(
string $string
,
int $form
= Normalizer::FORM_C):
bool
public static normalize(
string $string
,
int $form
= Normalizer::FORM_C):
string|false
}
定義済み定数
以下の定数は、使用する正規化方式を定義するものです。
-
Normalizer::FORM_C
(int)
-
Normalization Form C (NFC) - Canonical Decomposition followed by
Canonical Composition
-
Normalizer::FORM_D
(int)
-
Normalization Form D (NFD) - Canonical Decomposition
-
Normalizer::FORM_KC
(int)
-
Normalization Form KC (NFKC) - Compatibility Decomposition, followed by
Canonical Composition
-
Normalizer::FORM_KD
(int)
-
Normalization Form KD (NFKD) - Compatibility Decomposition
-
Normalizer::NONE
(int)
-
分解/合成を行わない
-
Normalizer::OPTION_DEFAULT
(int)
-
デフォルトの正規化オプション