<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.intl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'en',
  ),
  'this' => 
  array (
    0 => 'class.normalizer.php',
    1 => 'Normalizer',
    2 => 'The Normalizer class',
  ),
  'up' => 
  array (
    0 => 'book.intl.php',
    1 => 'intl',
  ),
  'prev' => 
  array (
    0 => 'locale.setdefault.php',
    1 => 'Locale::setDefault',
  ),
  'next' => 
  array (
    0 => 'normalizer.getrawdecomposition.php',
    1 => 'Normalizer::getRawDecomposition',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/intl/normalizer.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.normalizer.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.normalizer" class="reference">
 <h1 class="title">The Normalizer class</h1>
 

 <div class="partintro"><p class="verinfo">(PHP 5 &gt;= 5.3.0, PHP 7, PHP 8, PECL intl &gt;= 1.0.0)</p>

  
  <div class="section" id="normalizer.intro">
   <h2 class="title">Introduction</h2>
   <p class="simpara">
    Normalization is a process that involves transforming characters and
    sequences of characters into a formally-defined underlying representation.
    This process is most important when text needs to be compared for sorting
    and searching, but it is also used when storing text to ensure that the
    text is stored in a consistent representation.
   </p>
   <p class="para">
    The Unicode Consortium has defined a number of normalization forms
    reflecting the various needs of applications:
    <ul class="simplelist">
     <li>Normalization Form D (NFD) - Canonical Decomposition</li>
     <li>
      Normalization Form C (NFC) - Canonical Decomposition followed by
      Canonical Composition
     </li>
     <li>
      Normalization Form KD (NFKD) - Compatibility Decomposition
     </li>
     <li>
      Normalization Form KC (NFKC) - Compatibility Decomposition followed by
      Canonical Composition
     </li>
    </ul>
    The different forms are defined in terms of a set of transformations on
    the text, transformations that are expressed by both an algorithm and a
    set of data files.
   </p>
  </div>
  

  <div class="section" id="normalizer.synopsis">
   <h2 class="title">Class synopsis</h2>

   
   <div class="classsynopsis"><div class="classsynopsisinfo">
    
     <span class="modifier">class</span> <strong class="classname"><strong class="classname">Normalizer</strong></strong>
     {</div>

    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Constants */</div>
    <div class="fieldsynopsis">
     <span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.form-d"><var class="varname">FORM_D</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.nfd"><var class="varname">NFD</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.form-kd"><var class="varname">FORM_KD</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.nfkd"><var class="varname">NFKD</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.form-c"><var class="varname">FORM_C</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.nfc"><var class="varname">NFC</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.form-kc"><var class="varname">FORM_KC</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.nfkc"><var class="varname">NFKC</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.form-kc-cf"><var class="varname">FORM_KC_CF</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.normalizer.php#normalizer.constants.nfkc-cf"><var class="varname">NFKC_CF</var></a></var>;</div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Methods */</div>
    <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">static</span> <span class="methodname"><a href="normalizer.getrawdecomposition.php" class="methodname">getRawDecomposition</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$form</code><span class="initializer"> = <strong><code><a href="class.normalizer.php#normalizer.constants.form-c">Normalizer::FORM_C</a></code></strong></span></span>): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="methodname"><a href="normalizer.isnormalized.php" class="methodname">isNormalized</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$form</code><span class="initializer"> = <strong><code><a href="class.normalizer.php#normalizer.constants.form-c">Normalizer::FORM_C</a></code></strong></span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="methodname"><a href="normalizer.normalize.php" class="methodname">normalize</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$form</code><span class="initializer"> = <strong><code><a href="class.normalizer.php#normalizer.constants.form-c">Normalizer::FORM_C</a></code></strong></span></span>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

   }</div>
   

  </div>

  

  

<div class="section" id="intl.normalizer-constants">
 <h2 class="title">Predefined Constants</h2>

 <p class="para">
  The following constants define the normalization form used by the
  normalizer:
  <dl>
   
    <dt id="normalizer.constants.form-c">
     <strong><code><a href="class.normalizer.php#normalizer.constants.form-c">Normalizer::FORM_C</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Normalization Form C (NFC) - Canonical Decomposition followed by
      Canonical Composition
     </span>
    </dd>
   

   
    <dt id="normalizer.constants.form-d">
     <strong><code><a href="class.normalizer.php#normalizer.constants.form-d">Normalizer::FORM_D</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">Normalization Form D (NFD) - Canonical Decomposition</span>
    </dd>
   

   
    <dt id="normalizer.constants.nfd">
     <strong><code><a href="class.normalizer.php#normalizer.constants.nfd">Normalizer::NFD</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   

   
    <dt id="normalizer.constants.form-kc">
     <strong><code><a href="class.normalizer.php#normalizer.constants.form-kc">Normalizer::FORM_KC</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Normalization Form KC (NFKC) - Compatibility Decomposition, followed by
      Canonical Composition
     </span>
    </dd>
   

   
    <dt id="normalizer.constants.nfkc">
     <strong><code><a href="class.normalizer.php#normalizer.constants.nfkc">Normalizer::NFKC</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   

   
    <dt id="normalizer.constants.form-kc-cf">
     <strong><code><a href="class.normalizer.php#normalizer.constants.form-kc-cf">Normalizer::FORM_KC_CF</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   

   
    <dt id="normalizer.constants.form-kd">
     <strong><code><a href="class.normalizer.php#normalizer.constants.form-kd">Normalizer::FORM_KD</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Normalization Form KD (NFKD) - Compatibility Decomposition
     </span>
    </dd>
   

   
    <dt id="normalizer.constants.nfkd">
     <strong><code><a href="class.normalizer.php#normalizer.constants.nfkd">Normalizer::NFKD</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   

   
    <dt id="normalizer.constants.nfc">
     <strong><code><a href="class.normalizer.php#normalizer.constants.nfc">Normalizer::NFC</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   

   
    <dt id="normalizer.constants.nfkc-cf">
     <strong><code><a href="class.normalizer.php#normalizer.constants.nfkc-cf">Normalizer::NFKC_CF</a></code></strong>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para"/>
    </dd>
   
  </dl>
 </p>
</div>





  <div class="section" id="normalizer.seealso">
   <h2 class="title">See Also</h2>
   <p class="para">
    <ul class="simplelist">
     <li>
      <a href="http://unicode.org/reports/tr15/" class="link external">&raquo;&nbsp;
       Unicode Normalization
      </a>
     </li>
     <li>
      <a href="http://unicode.org/faq/normalization.html" class="link external">&raquo;&nbsp;
       Unicode Normalization FAQ
      </a>
     </li>
     <li>
      <a href="https://unicode-org.github.io/icu/userguide/transforms/normalization/" class="link external">&raquo;&nbsp;
       ICU User Guide - Normalization
      </a>
     </li>
     <li>
      <a href="https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/unorm_8h.html" class="link external">&raquo;&nbsp;
       ICU API Reference - Normalization
      </a>
     </li>
    </ul>
   </p>
  </div>

  <div class="section">
   <h2 class="title">Changelog</h2>
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Description</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.4.0</td>
       <td>
        The class constants are now typed.
       </td>
      </tr>

      <tr>
       <td>8.0.0</td>
       <td>
        <strong><code>Normalizer::NONE</code></strong> has been removed.
       </td>
      </tr>

     </tbody>
    
   </table>

  </div>
 </div>

 















<h2>Table of Contents</h2><ul class="chunklist chunklist_reference"><li><a href="normalizer.getrawdecomposition.php">Normalizer::getRawDecomposition</a> — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point</li><li><a href="normalizer.isnormalized.php">Normalizer::isNormalized</a> — Checks if the provided string is already in the specified normalization
   form</li><li><a href="normalizer.normalize.php">Normalizer::normalize</a> — Normalizes the input provided and returns the normalized string</li></ul>
</div>
<?php manual_footer($setup); ?>