Please note, that in many cases, forcing UTF-8 encoding with second parameter is necessary. PHP documentation states that if this parameter is omitted, the internal character encoding value will be used. But in my case it turned out to be not true. Even though I have all my pages encoded in UTF-8 and my DB connection set to force UTF-8 encoding, comparison of user-input and DB-retrieved data, which is using mb_strtoupper, did not work until I forced encoding.
mb_strtoupper
(PHP 4 >= 4.3.0, PHP 5)
mb_strtoupper — Met tous les caractères en majuscules
Description
$str
[, string $encoding = mb_internal_encoding()
] )
Retourne la chaîne str
après avoir converti tous les caractères alphabétiques en majuscules.
Liste de paramètres
-
str -
La chaîne à mettre en majuscule.
-
encoding -
Le paramètre
encodingest l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.
Valeurs de retour
Retourne la chaîne str dont tous les caractères
ont été mis en majuscule.
Unicode
Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/unicode/reports/tr21/.
Contrairement à strtoupper(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).
Exemples
Exemple #1 Exemple avec mb_strtoupper()
<?php
$str = "Marie A Un Petit Agneau Et Elle L'Aime BEAUCOUP.";
$str = mb_strtoupper($str);
echo $str; // MARIE A UN PETIT AGNEAU ET ELLE L'AIME BEAUCOUP.
?>
Exemple #2 Exemple avec mb_strtoupper() et du texte UTF-8 non latin
<?php
$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Affiche ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
?>
Voir aussi
- mb_strtolower() - Met tous les caractères en minuscules
- mb_convert_case() - Modifie la casse d'une chaîne
- strtoupper() - Renvoie une chaîne en majuscules
for some reason, there are instances that special characters do show when you use this function, but when you revisit or refresh the page the special characters doesn't appear anymore, ie GRSARMERING is being displayed instead of GRÆSARMERING. You have to provide the second parameter which charset you are using to override the value. in my case it's iso-8859-1, so the function would now look like
mb_strtoupper($foo, 'iso-8859-1')
UTF-8 does not support html entities
ó is ó in UTF-8
Be careful with htmlentities ...
<?
echo mb_strtoupper("L'élphant", "utf-8");
?>
output : L'&EACUTE;LPHANT
