mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/12286] Remove section about utf8_normalize_nfc()
The request class takes care of this PHPBB3-12286
This commit is contained in:
parent
c68f7671d2
commit
218e04a1e4
1 changed files with 0 additions and 13 deletions
|
@ -1784,19 +1784,6 @@ Käse
|
||||||
K??se
|
K??se
|
||||||
</pre></div>
|
</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 Å 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ä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>
|
<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>
|
<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>
|
||||||
|
|
Loading…
Add table
Reference in a new issue