[ticket/12286] Remove section about utf8_normalize_nfc()

The request class takes care of this

PHPBB3-12286
This commit is contained in:
Joas Schilling 2014-03-18 09:36:40 +01:00
parent c68f7671d2
commit 218e04a1e4

View file

@ -1784,19 +1784,6 @@ Käse
K??se
</pre></div>
<h4>Unicode Normalization</h4>
<p>If you retrieve user input with multibyte characters you should additionally normalize the string using <code>utf8_normalize_nfc()</code> before you work with it. This is necessary to make sure that equal characters can only occur in one particular binary representation. For example the character &#197; can be represented either as <code>U+00C5</code> (LATIN CAPITAL LETTER A WITH RING ABOVE) or as <code>U+212B</code> (ANGSTROM SIGN). phpBB uses Normalization Form Canonical Composition (NFC) for all text. So the correct version of the above example would look like this:</p>
<div class="codebox"><pre>
$_REQUEST['multibyte_string'] = 'K&#228;se';
// normalize multibyte strings
echo utf8_normalize_nfc($request->variable('multibyte_string', '', true));
// ASCII strings do not need to be normalized
echo $request->variable('multibyte_string', '');
</pre></div>
<h4>Case Folding</h4>
<p>Case insensitive comparison of strings is no longer possible with <code>strtolower</code> or <code>strtoupper</code> as some characters have multiple lower case or multiple upper case forms depending on their position in a word. The <code>utf8_strtolower</code> and the <code>utf8_strtoupper</code> functions suffer from the same problem so they can only be used to display upper/lower case versions of a string but they cannot be used for case insensitive comparisons either. So instead you should use case folding which gives you a case insensitive version of the string which can be used for case insensitive comparisons. An NFC normalized string can be case folded using <code>utf8_case_fold_nfc()</code>.</p>