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 — Convierte un string en mayúsculas
Descripción
$str
[, string $encoding = mb_internal_encoding()
] )
Devuelve str
con todos los caracteres alfabéticos convertidos a mayúsculas.
Parámetros
-
str -
El string a convertir en mayúsculas.
-
encoding -
El parámetro
encodinges la codificación de caracteres. Si es omitido, será usado el valor de la codificación de caracteres interna.
Valores devueltos
str con todos los caracteres alfabéticoas convertidos a mayúsculas.
Unicode
Para más información sobre la propiedades Unicode, véase » http://www.unicode.org/unicode/reports/tr21/.
A diferencia de strtoupper(), 'alphabetic' está determinado por las propiedades del carácter Unicode. Por lo tanto, el comportamiento de esta función no se ve afectado por la configuración regional, por lo que puede convertir cualquier carácter que tenga la propiedad 'alphabetic', como la a con diéresis (ä).
Ejemplos
Ejemplo #1 Ejemplo de mb_strtoupper()
<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Imprime MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>
Ejemplo #2 Ejemplo de mb_strtoupper() con texto UTF-8 no latino
<?php
$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Imprime ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
?>
Ver también
- mb_strtolower() - Convierte una cadena de caracteres a minúsculas
- mb_convert_case() - Realiza una conversión a mayúsculas/minúsculas de un string
- strtoupper() - Convierte un string a mayúsculas
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
